- 컴파일시 타입을 체그해 주는 기능
- 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌
제네릭 장점
1. 타입 안정성을 제공한다.
2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.
- 클래스를 작성할 때, Object타입 대신 T와 같은 타입변수를 사용
- 참조변수, 생성자에 T대신 실제 타입을 지정하면 형변환 생략가능
주석으로 설명...
package ch12;
// 제네릭
class Num <T extends Number> {
// 필드가 정수일수도 있고 실수일수도 있을 경우
T value;
public Num(T value){
this.value = value;
}
}
public class S01 {
public static void main(String[] args) {
// Num num = new Num<Integer>(1);
Num num = new Num<>(1.0);
}
}
주석으로 설명...
package ch00;
import java.util.Optional;
public class Study10 {
public static void main(String[] args) {
String str = null;
// null 값이 들어올 수 있는 변수는 null처리를 해주는 것이 좋다
if (str == null) {
System.out.println("데이터가 null입니다."); //데이터가 null입니다.
} else {
System.out.println(str.length());
}
// null값이 들어올 수 있는 변수를 컨트롤 할때 사용
// null처리를 강제할 수 있다.
Optional<String> optionalStr = Optional.of("안녕하세요");
if(optionalStr.isEmpty()) {
System.out.println("데이터가 null입니다.");
} else {
System.out.println(optionalStr.get().length()); //5
}
System.out.println(optionalStr.orElse("값이 없습니다.")); //안녕하세요
}
}