Generics

ν•˜λ‚˜ μ΄μƒμ˜ λ§€κ°œλ³€μˆ˜ νƒ€μž… (Paramter Type) 을 μ„ μ–Έν•˜κ³  μžˆλŠ” ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œλ„€λ¦­ νƒ€μž… 이라 ν•œλ‹€.

μ œλ„€λ¦­μ˜ μ‚¬μš© μ½”λ“œλŠ” λ‹€μŒ 이점을 가진닀.

컴파일 μ‹œμ μ— μ½”λ“œλ₯Ό 체크

Java 의 μ»΄νŒŒμΌλŸ¬λŠ” νƒ€μž…μ˜ μ•ˆμ •μ΄ 보μž₯된 (Typesafe) ν•œ μ½”λ“œλ₯Ό 지ν–₯ν•œλ‹€.

μ»΄νŒŒμΌμ‹œμ— 였λ₯˜λ₯Ό μˆ˜μ •ν•˜λŠ”κ²ƒμ΄ λŸ°νƒ€μž„ μ‹œ 였λ₯˜λ₯Ό μˆ˜μ •ν•˜λŠ”κ²ƒμ΄ μ°ΎκΈ° 쉽기 λ•Œλ¬Έμ΄λ‹€.

λ³„λ„μ˜ 클래슀 μΊμŠ€νŒ…μ˜ 제거

μ œλ„€λ¦­μ˜ μ‚¬μš©ν•œ μ½”λ“œμ™€ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ½”λ“œλ₯Ό λΉ„κ΅ν•΄λ³΄μž



Β 

List list = new ArrayList();
list.add("Hello");
String str = (String) list.get(0);


Β 

List<String> list = new ArrayList<>();
list.add("Hello");
String str = list.get(0);   // no cast

μ œλ„€λ¦­ν•œ ν”„λ‘œκ·Έλž˜λ° μ•Œκ³ λ¦¬μ¦˜μ˜ κ΅¬ν˜„

νƒ€μž…μ΄ μ•ˆμ •μ μ΄λ©΄μ„œ 가독성이 μžˆλŠ” μ œλ„€λ¦­ μ•Œκ³ λ¦¬μ¦˜μ˜ μ½”λ“œλ₯Ό κ΅¬ν˜„κ°€λŠ₯ν•˜λ‹€.