반응형
JAVA에서는 꺾쇠 괄호 <> 를 사용하는 문법을 자주 볼 수 있는데요.
이게 뭘까요? 왜 사용하는 걸까요?
이것을 자바에서는 제네릭 타입이라고 부른다고 하네요.
ㅁ 왜 사용하는가?
'이것이 자바다' 책을 기본서적으로 보고 있습니다.
설명에 따르면, 메소드에 사용될 반환타입을 명시적으로 정해서, 오류를 사전에 차단하고, 성능을 높이고자 함이라고 합니다.
이게 무슨 말인지 좀 더 풀어서 설명하면,
꺾쇠 괄호 <> 안에 데이터 타입을 정의 하면 두가지 면에서 좋습니다.
1) 실행단계에서 오류가 나기 전, 컴파일 단계에서 미리 체크가 가능하다.
Box<String> 으로 정해 놓으면, String 만 들어 올 수 있는 것이죠.
Object로 설정하면 Integer도 들어올 수 있는데, 이런 경우 (String) str.get(); 해서 데이터를 뽑을 때 강제형변환을 해주지 않으면 오류가 발생할 겁니다.
이를 사전에 차단 할 수 있습니다.
2) 위와 이어지는 내용인데요. 입력 단계에서 String으로 데이터 타입을 제한했기 때문에, 출력시 str.get(); 해서 뽑을 때, 강제형변환을 해줄 필요가 없어집니다.
ㅁ 어떻게 사용하는가?
샘플예제를 실어봅니다.
public class Box<T> {
private T t;
public T get() {
return t;
}
public void set(T t) {
this.t = t;
}
}
위처럼 T라는 변수로 Box class를 정의 합니다.
이후, 불러다 쓸 때, 지정하는 데이터 타입에 따라 자동으로 set, get이 맞춰진다고 합니다.
public class BoxExample {
public static void main(String[] args) {
Box<String> box1 = new Box<String>();
box1.set("heloo");
String str = box1.get();
System.out.println(str);
Box<Integer> box2 = new Box<Integer>();
box2.set(777);
int val = box2.get();
System.out.println(val);
}
}
위의 결과는 heloo 가 나오고,
아래의 결과는 777 이 나오게 됩니다.
반응형
'개발 > Java' 카테고리의 다른 글
[JAVA] 자바 indexOf 사용법 (0) | 2021.04.12 |
---|---|
[java] equalsIgnoreCase 메소드 (0) | 2021.04.08 |
자바 컬렉션에 대한 설명 (0) | 2021.04.03 |
request.getServletPath() 사용 방법 (0) | 2021.03.29 |
jsoup jar파일을 java project 에 추가하는 방법 (0) | 2021.03.12 |