무소의 뿔처럼
Generics 본문
_ 이해하는것 까지만
컴파일때 타입체크 .
class를 instance화 할때 타입지정
※ class 만들때
class Rpg<T,S> {
public T name;
public S level;
character(T name, S level) {
this.name = name;
this.level = level;
}
//setter, getter, toString()
}
setter, getter, toString()
더보기
//setter, getter, toString()
public T getName() {
return name;
}
public void setName(T name) {
this.name = name;
}
public S getLevel() {
return level;
}
public void setLevel(S level) {
this.level = level;
}
@Override
public String toString() {
return "Rpg [name=" + name + ", level=" + level + "]";
}
※ instance화 할때 타입을 정해준다.
Rpg<String, Integer> R1 = new Rpg<String, Integer>();
==
Rpg<String, Integer> R2 = new Rpg<>(); // Java SE 7부터
참고 : instance화
더보기
Rpg<String, Integer> R3 = new Rpg();
/* 경고 :
Type safety: The expression of type Rpg needs unchecked conversion to conform to Rpg<String,Integer>
유형 안전성: Rpg 유형의 표현식은 Rpg<String,Integer>를 준수하기 위해 확인되지 않은 변환이 필요합니다.*/
Rpg R4 = new Rpg();
/* 경고 :
Rpg is a raw type. References to generic type Rpg<T,S> should be parameterized
RPG는 원시 유형입니다. 제네릭 형식 Rpg<T,S>에 대한 참조는 매개변수화되어야 합니다.*/
※ main에서 호출
public class newbie {
public static void main(String[] args) {
Rpg<String, Integer> R1 = new Rpg<String, Integer>();
R1.character("1", 10);
System.out.println("R1: "+R1);
}
}
결과 : R1: Rpg [name=1, level=10]
// R1.character("1", "10"); String, String
// R1.character(1, "10"); int, int
java.lang.Error: Unresolved compilation problems:
명시한 타입과 일치하지 않으면 컴파일 에러가 난다.
'알아두기 > Java' 카테고리의 다른 글
페이징 참고 블로그 링크 함. /paging / pagination/ (0) | 2023.02.01 |
---|---|
java.util.Collections , Array.asList() (0) | 2022.08.24 |
Comments