반응형
Class generic type
ClassGenericType<String> classGenericType = new ClassGenericType<>();
/**
* 클래스 내에 타입이 선언되어야 한다
*
*/
class ClassGenericType<T> {
// static 필드는 제너릭 타입을 가질 수 없다
// private static T t;
private T t;
public void set(T t) {
this.t = t;
}
public T get() {
return t;
}
}
Interface generic type
/**
* <T1, T2> 는 abstract method의 제너릭 타입을 다르게 주고 싶을 때 사용 이런식으로 사용
*/
interface InterfaceGenericType<T1, T2> {
T1 doSomething(T2 t);
T2 doSomething2(T1 t);
}
class InterfaceGenericTypeImpl implements InterfaceGenericType<String, Integer> {
@Override
public String doSomething(Integer t) {
return null;
}
@Override
public Integer doSomething2(String t) {
return null;
}
}
Method Generic Type
/**
* 메소드 제너릭 타입은 클래스에 제너릭 타입을 선언하지 않아도 되며 필요한 메서드에 제너릭 타입을
* 선언하면 된다.
* 유의 할 점은 메서드 아규먼트에 타입 매개변수 T가 선언되어 있으면
* 메서드의 리턴 타입 앞에 제너릭 타입을 선언해야 한다.
* T, E, V, U 등등의 타입 매개변수가 선언되어 있다면 제너릭 타입이 필수적으로 선언되어야 한다라는 것.
*/
class MethodGenericType {
public static <T> int methodGeneric(T[] list, T item) {
int count = 0;
for (T t : list) {
if (item == t) {
count++;
}
}
return count;
}
}
Generic Type variable
- E - Element
- K - Key
- N - Number
- T - Type
- V - Value
반응형
'개발 > java' 카테고리의 다른 글
주요 함수형 인터페이스 (0) | 2024.05.19 |
---|---|
java.lang.nullpointerexception 오류 예방 (0) | 2023.03.28 |
Stream 예제 (0) | 2022.02.06 |
JSch를 사용한 JAVA SFTP 업로드 다운로드 예제 (개인키, 패스워스) (3) | 2021.08.18 |
현재 날짜 출력, 시간 원하는 형태로 출력, 날짜 포맷 (0) | 2021.01.18 |
댓글