μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ν방쿼리
- λ°±μ€1874
- μ°μ°μ
- java
- StringBuilder
- λ°±μ€9093
- λ°±μ€11053 #νμ΄μ¬ #python
- μ€νΈλ¦Ό
- λ
- μ
- λ°μ΄ν°νμ
- μ€ν
- μλ°
- μΏ ν‘DB
- λ¬Έμμ΄
- μ€νμμ΄
- λ°±μ€9012
- stream
- μ°
- λ°°μ΄
- StringBuffer
- μΏ ν‘ERD
- Today
- Total
Tech Log π οΈ
[java] μ λ€λ¦ λ³Έλ¬Έ
μ λ€λ¦μ΄λ?
μ΄λ€ ν΄λμ€μ μμ§ ννκ° μ ν΄μ§μ§ μμ νλλ₯Ό μ μΈνλ€κ³ κ°μ ν΄λ³΄μμ΄ νλλ₯Ό μ΄λ»κ² μ μΈν΄μ€μΌν κΉ?
μ½κ² μκ°ν΄λ³΄λ©΄ λͺ¨λ ν΄λμ€μ μ΅μμ λΆλͺ¨ ν΄λμ€μΈ Object λ‘ μ μΈν μ μλ€.νμ§λ§ μ΄λ΄ κ²½μ° νμ
μ λͺ¨λ₯΄κΈ° λλ¬Έμ νλκ°μ μ»μ λ λ¬Έμ κ° λ°μνλ€.
instanceof μ°μ°μλ‘ νμ
μ μ‘°μ¬ν μλ μμ§λ§ λͺ¨λ μ’
λ₯μ ν΄λμ€λ₯Ό λμμΌλ‘ μ‘°μ¬ν μλ μλ€.
λ°λΌμ μ΄λ° κ²½μ°μλ μμ§ νμ
μ΄ μ ν΄μ§μ§μμ νλλ₯Ό μ μΈν μ μλ κΈ°λ₯μ΄ νμνλ€.
μ΄κ²μ΄ "μ λ€λ¦"μ΄λ€.
μ λ€λ¦μ΄λ κ²°μ λμ§ μμ νμ μ νλΌλ―Έν°λ‘ μ²λ¦¬νκ³
μ€μ μ¬μ©ν λ νλΌλ―Έν°λ₯Ό ꡬ체μ μΈ νμ μΌλ‘ λ체μν€λ κΈ°λ₯
μ½κ² μκ°νλ©΄ μΌλ¨ νμ
μ μ μΈν νμ ꡬ체μ μΈ νμ
μ λμ€μ μ€μ νλ κ±°λΌκ³ μ΄ν΄νλ©΄ λ κ² κ°λ€.
public class Box<T>{
public T content;
}
//'T' λμ λ€λ₯Έ μνλ²³μ μ¨λ 무방
μ¬κΈ°μ Tλ νμ
νλΌλ―Έν°λ₯Ό μλ―Ένκ³ ν΄λμ€ λ° μΈν°νμ΄μ€λ§ λ°μ μ μλ€.
λ§μ½ contentμ 100μ λ£κ³ μΆλ€λ©΄ , νμ
νλΌλ―Έν°λ₯Ό Integerλ‘ λ체νλ©΄λκ³
contentμ '"name"μ λ£κ³ μΆλ€λ©΄, νμ
νλΌλ―Έν°λ₯Ό StringμΌλ‘ λ체νλ©΄ λλ€.
μ λ€λ¦ νμ
μ λ€λ¦νμ μ κ²°μ λμ§ μμ νμ μ νλΌλ―Έν°λ‘ κ°μ§λ ν΄λμ€μ μΈν°νμ΄μ€μ΄λ€.
public class ν΄λμ€λͺ
<A,B,..> {...}
public interface μΈν°νμ΄μ€λͺ
<A,B,..> {...}
//μ μΈλΆμ '<>' λΆνΈκ° λΆλλ€.
νμ
μ μ§μ νμ§ μμΌλ©΄ Object νμ
μ΄ κΈ°λ³Έμ μΌλ‘ μ¬μ©λλ©° , objectκ° κ°μ§κ³ μλ λ©μλ(ex.equals)λ₯Ό νΈμΆν μ μλ€.
μ λ€λ¦ λ©μλ
μ λ€λ¦ λ©μλλ νμ νλΌλ―Έν°λ₯Ό κ°μ§κ³ μλ λ©μλμ΄λ€.
public <A,B,...> 리ν΄νμ
λ©μλλͺ
(맀κ°λ³μ,..){ }
μ λ€λ¦ νμ
κ³Όλ λ€λ₯΄κ² νμ
νλΌλ―Έν°κ° λ©μλ μ μΈλΆμμ μ μλλ€ .
public static <T> Box<T> boxing(T t) {
Box<T> box = new Box<T>();
box.setT(t);
return box;
}
public static void main(String[] args) {
Box<Integer> box1 = boxing(100);
// 100μ΄ Integer νμ
μ΄λ―λ‘ Tλ Integerλ‘ λ체
int intValue = box1.getT();
System.out.println(intValue);
Box<String> box2 = boxing("name");
// 100μ΄ String νμ
μ΄λ―λ‘ Tλ StringμΌλ‘ λ체
String strValue = box2.getT();
System.out.println(strValue);
}
μ νλ νμ νλΌλ―Έν°
κ²½μ°μ λ°λΌμλ νμ νλΌλ―Έν°λ₯Ό λ체νλ ꡬ체μ μΈ νμ μ μ νν μ μλ€.
public <T extends μμνμ
> 리ν΄νμ
λ©μλ(맀κ°λ³μ,...) { }
μμνμ
μ ν΄λμ€ λΏλ§ μλλΌ μΈν°νμ΄μ€λ κ°λ₯νλ€.
λ§μ½ μμνμ
μ Numberλ‘ μ ννλ€λ©΄ ν΄λΉ μμν΄λμ€(Byte,Shoret,Long,Integer ...) λ§ μ¬μ©ν κ°λ₯νλ©° ν΄λΉ ν΄λμ€κ° κ°μ§κ³ μλ λ©μλλ μ΄μ©ν μ μλ€.
μμΌλμΉ΄λ νμ νλΌλ―Έν°
μ λ€λ¦ νμ
μ 맀κ°κ°μ΄λ λ¦¬ν΄ νμ
μΌλ‘ μ¬μ©ν λ νμ
νλΌλ―Έν°λ‘ '?'(μμΌλμΉ΄λ)λ₯Ό μ¬μ©ν μ μλ€.
ex)
Student ν΄λμ€μ μμ ν΄λμ€λ§ 맀κ°λ³μλ‘ κ°λ₯
리ν΄νμ
λ©μλλͺ
(μ λ€λ¦νμ
<? extends Students> λ³μ) {...}
Worker ν΄λμ€μ λΆλͺ¨ ν΄λμ€λ§ 맀κ°λ³μλ‘ κ°λ₯
리ν΄νμ
λ©μλλͺ
(μ λ€λ¦νμ
<? super Worker> λ³μ) {...}
μ΄λ€ νμ
μ΄λ 맀κ°λ³μλ‘ κ°λ₯
리ν΄νμ
λ©μλλͺ
(μ λ€λ¦νμ
<?> λ³μ) {...}
'TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
StringBuilder VS StringBuffer (0) | 2023.06.04 |
---|---|
[TIL] μΈμ μΈμ¦κ³Ό ν ν° μΈμ¦ λ°©μ (0) | 2023.03.22 |
[java] μ€νΈλ¦Ό μμ μ²λ¦¬ (0) | 2023.02.28 |
[java] λλ€μ (0) | 2023.02.25 |
[java] μ€μ²© μ μΈκ³Ό μ΅λͺ κ°μ²΄ (0) | 2023.02.23 |