라이브러리 활용 - 제네릭 (5) 썸네일형 리스트형 와일드카드 타입 파라미터 와일드카드 타입 파라미터 제네릭 타입을 매개값이나 리턴 타입으로 사용할 때 범위에 있는 모든 타입으로 대체할 수 있는 타입 파라미터. ?로 표시 출처, 이것이 자바다 출처, 이것이 자바다 package ch13.sec05; //일반인 public class Person { } //직장인 class Worker extends Person { } //학생 class Student extends Person { } //고등학생 class HighStudent extends Student { } //중학생 class MiddleStudent extends Student { } package ch13.sec05; //수강생, 응모자 public class Applicant { public T kind; publi.. 제한된 타입 파라미터 제한된 타입 파라미터 모든 타입으로 대체할 수 없고, 특정 타입과 자식 또는 구현 관계에 있는 타입만 대체할 수 있는 타입 파라미터 출처, 이것이 자바다 상위 타입은 클래스뿐만 아니라 인터페이스도 가능 출처, 이것이 자바다 package ch13.sec04; /* 제한된 타입 파라미터 제네릭 메소드 */ public class GenericExample { //제한된 파라미터 T에 적용하는 타입 : Number클래스 이거나 Number클래스를 상속하는 하위데이터 타입 public static boolean compare(T t1, T t2) { //T의 타입을 출력 System.out.println("compare(" + t1.getClass().getSimpleName() + ", " + t2.getC.. 제네릭 메소드 제네릭 메소드 타입 피라미터를 가지고 있는 메소드. 타입 파라미터가 메소드 선언부에 정의 리턴 타입 앞에 기호 추가하고 타입 파라미터 정의 후 리턴 타입과 매개변수 타입에서 사용 출처, 이것이 자바다 타입 파라미터 T는 매개값의 타입에 따라 컴파일 과정에서 구체적인 타입으로 대체 출처, 이것이 자바다 package ch13.sec03.exam01; public class Box { //필드 private T t; //Getter 메소드 public T get() { return t; } //Setter 메소드 public void set(T t) { this.t = t; } } package ch13.sec03.exam01; public class GenericExample { //제네릭 메소드 .. 제네릭 타입 제네릭 타입 결정되지 않은 타입을 파라미터로 가지는 클래스와 인터페이스 선언부에 ‘’ 부호가 붙고 그 사이에 타입 파라미터들이 위치 출처, 이것이 자바다 타입 파라미터는 일반적으로 대문자 알파벳 한 글자로 표현 외부에서 제네릭 타입을 사용하려면 타입 파라미터에 구체적인 타입을 지정. 지정하지 않으면 Object 타입이 암묵적으로 사용 package ch13.sec02.exam01; //제네릭 타입 public class Product { //필드 private K kind; //제품명 private M model; //모델명 //메소드 getter, setter public K getKind() { return this.kind; } public M getModel() { return this.mo.. 제네릭이란? 제네릭 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능 (T)는 T가 타입 파라미터임을 뜻하는 기호. 타입이 필요한 자리에 T를 사용할 수 있음을 알려줌 출처, 이것이 자바다 package ch13.sec01; /* Generic(제네릭)이 적용된 클래스 : 타입 파리미터 T 적용대상 : T 필드, T 메소드(T 매개변수) 등 */ public class Box { public T content; //"안녕하세요" , 100 } package ch13.sec01; public class GenericExample { public static void main(String[] args) { //Box box1 = new Box(); Box box1 = .. 이전 1 다음