일반화(Generic)
1) 다양한 자료형의 데이터를 처리하기 위해서는 일반화 작업이 필요함
하는 일은 비슷한 데 자료형이 달라서 클래스나 메소드를 여러 개 만들어야 할 경우
i) 오버로딩이나 오버라이딩을 해야만 한다.
ii) 그런데 이렇게 안하고 자료형을 Object 타입으로 선언해서 하는 방법도 있다.
-> 이 방법은 내부적으로 형변환이 자주 일어난다는 단점이 있다.
iii) 그래서 더 좋은 방법이 없을까 해서 나온 방법이 일반화이다.
2) 일반화 하는 방법
public class Type3<T>{ //자료형이 미정
T t;
public void setT(T t){
this.t = t;
}
public T get(){
return t;
}
public static void main(String[] args){
//컴파일할 때 자료형을 고정시킴
Type3<String> t=new Type3<String>();
t.setT(“100”);
System.out.println(t.getT());
}
}
public class Type3<T>
- <T>에서 T대신 다른 임의의 문자나 문자열을 사용해도 된다.
이 단계에서는 아직 T의 자료형이 무엇인지 정해지진 않았다.
Type3<String> t=new Type3<String>();
- <T>의 자료형이 String으로 정해짐에 따라 위 소스에서 T의 자리에는 String으로 대체되어 컴파일 된다.
- Type3<String> t=new Type3<>(); //-> 이렇게 써도 된다.
일반화된 하나의 메소드에 여러 자료형을 처리하고자 할 때에는
위의 String 자리에 <Object>를 쓰면 된다.
요렇게...
Type3<Object> t=new Type3<Object>();
'공부방 > 자바프로그래밍' 카테고리의 다른 글
List 구조 – ArrayList (0) | 2021.08.02 |
---|---|
List 구조 (0) | 2021.05.14 |
자바 컬렉션(Collection) (0) | 2021.02.20 |
유용한 클래스들 – 래퍼(Wrapper) 클래스 (0) | 2021.02.02 |
자바 유용한 클래스들 – Math, Calendar, Arrays, Random 클래스 (0) | 2020.11.02 |
자바 유용한 클래스들 - String 클래스 (0) | 2020.10.08 |
자바 유용한 클래스들 - Object 클래스 (0) | 2020.09.22 |
자바 내부클래스 (0) | 2020.09.07 |
댓글