제네릭스는 인스턴스별로 다르게 동작하도록 하려고 만든 기능이다.
과일클래스 Apple과 Grape가 있다고 가정하자.
// 과일 클래스
class Apple {
private String type;
public Apple(String type) {
this.type = type;
}
public String getType() {
return type;
}
}
class Grape {
private String type;
public Grape(String type) {
this.type = type;
}
public String getType() {
return type;
}
}
이때 제네릭클래스를 만들어 형이 어떻든 내용을 잘 반환하도록 할것이다.
// 제네릭 클래스 정의
class Box<T> {
private T content;
// 생성자
public Box(T content) {
this.content = content;
}
// 내용을 반환하는 메서드
public T getContent() {
return content;
}
}
https://standout.tistory.com/1393
정의했던 제네릭클래스 메서드를 사용해 각각에 저장된값을 가져왔다.
Apple type: Red Apple
Grape type: Green Grape
public class FruitBoxExample {
public static void main(String[] args) {
// 제네릭 클래스의 객체 생성
Box<Apple> appleBox = new Box<>(new Apple("Red Apple"));
Box<Grape> grapeBox = new Box<>(new Grape("Green Grape"));
// 제네릭 클래스의 객체 사용
Apple apple = appleBox.getContent();
Grape grape = grapeBox.getContent();
// 출력
System.out.println("Apple type: " + apple.getType());
System.out.println("Grape type: " + grape.getType());
}
}
Apple type: Red Apple
Grape type: Green Grape
'JAVA' 카테고리의 다른 글
<? extends *> 와일드카드, 보다 유연한 타입제한 (0) | 2024.02.14 |
---|---|
제한된 제네릭 클래스 <T extends *> (0) | 2024.02.14 |
Generics 지네릭스, 형변환을 생략하다 (0) | 2024.02.14 |
제네릭클래스의 타입변수: <T> <E> <K,V> (0) | 2024.02.14 |
컬렉션과 관련된 메서드를 제공하는 Collections: 컬렉션의 동기화, 변경불가 컬렉션, 싱글톤 컬렉션, 한 종류의 객체만 저장하는 컬렉션 (0) | 2024.02.06 |