제네릭이란
클래스 또는 메소드에서 사용할 타입을 클래스 내부가 아닌 외부에서 선언하는 것.
즉, 클래스를 정의할 때 매개변수의 타입을 확정 짓지않고 해당 클래스의 객체를 생성할 때 매개변수의 데이터 타입을 지정해주게 된다.
제네릭 사용 이유
1. 객체를 생성할 때 데이터 타입을 정함으로서 클래스의 재사용성이 높아진다.
2. 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다.
제네릭 사용 방법
<> 기호를 사용하여 제네릭을 설정해 줄 수 있다.
public class 클래스명<T> {...}
public interface 인터페이스명<T> {...}
예시)
* 제네릭을 사용하지 않은 클래스 및 객체
// Test 클래스 정의
public class Test {
private String name; // 클래스 정의 단계부터 String이라는 데이터 타입을 지정해준다.
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
// Test 객체 생성
pubilc static void main(String args[]){
Test test = new Test();
String tempString = "김철수" // 클래스에서 정의된 데이터 타입에 맞춰 변수 값을 지정해준다.
Test.setName(tempString);
}
* 제네릭을 사용한 클래스 및 객체
// 클래스 정의
// 일반적으로 <T>를 사용하지만 T 대신 다른 파라미터를 사용해 줄 수 있다.
public class GenericTest <T> {
private T name;
public void setName(T name) {
this.name = name;
}
pubilc T getName() {
return name;
}
}
// 객체 생성
public static void main(String arg[]){
// 객체를 생성할 때 <String>을 통해 String타입을 사용하겠다고 명시.
GenericTest<String> genericTest = new GenericTest<String>();
String tempString = "홍길동";
genericTest.setName(tempString);
}
자주 사용하는 타입인자
<T> : Type
<E> : Element
<K> : Key
<N> : Number
<V> : Value
<R> : Result
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 문자열 배열에 저장하기 (1) | 2021.11.28 |
---|---|
[Java] replace()와 replaceAll() (0) | 2021.11.25 |
[Java]Collection (0) | 2021.04.28 |
[Java] 업캐스팅, 다운캐스팅 (0) | 2021.04.09 |
[Java]접근 지정자 (0) | 2021.04.06 |