제네릭 (2)
·
Java
제네릭을 도입하지 않은 예제 동물병원을 만드는데, 개 병원은 개만, 고양이 병원은 고양이만 받을 수 있어야 한다.public class CatHospital { private Cat animal; public void set(Cat animal) { this.animal = animal; } public void checkUp() { System.out.println("동물 이름: " + animal.getName()); System.out.println("동물 이름: " + animal.getSize()); animal.sound(); } public Cat bigger(Cat target) { return ..
제네릭 (1)
·
Java
제네릭이 필요한 이유public class IntegerBox { private Integer value; public void set(Integer value) { this.value = value; } public Integer get() { return value; }}public class StringBox { private String value; public String get() { return value; } public void set(String value) { this.value = value; }} 숫자, 문자열을 보관하고 꺼낼 수 있는 단순한 클래스이다.package mid2.g..
제네릭 - 제한된 타입 파라미터/ 와일드카드
·
Java
경우에 따라 타입 파라미터를 대체하는 구체적인 타입을 제한할 필요가 있다. 숫자를 연산하는 제네릭 메소드는 대체 타입으로 Number 또는 자식클래스 (Byte, Short, Integer ....)로 제한 할 필요가 있다. 상위 타입은 클래스뿐만 아니라 인터페이스도 가능하다. 인터페이스라고 해서 implements를 사용하진 않는다. package ch13.sec04;public class GenericEx { // 제한된 타입 파라미터를 갖는 제네릭 메소드 public static boolean compare(T t1, T t2) { System.out.println("compare: " + t1.getClass().getSimpleName() + ", " + ..
제네릭(Generic) 메소드
·
Java
제네릭 메소드는 타입 파라미터를 가지고 있는 메소드를 말한다.제네릭 메소드는 리턴 타입 앞에 기호를 추가하고 타입 파라미터를 정의한 뒤, 리턴 타입과 매개변수 타입에서 사용한다. package ch13.sec03.ex01;public class Box { private T t; public T get() { return t; } public void set(T t) { this.t = t; }} package ch13.sec03.ex01;public class GenericEx { public static Box boxing(T t) { Box box = new Box(); box.set(t); return..
제네릭 (Generic)
·
Java
제네릭이란 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타이븡로 대체시키는 기능 package ch13.sec01;public class Box { public T content;} Box 클래스에서 결정되지 않은 content 타입을  T라는 타입 파라미터로 정의했다. 는 타입 파라미터를 뜻하는 기호로, 타입이 필요한 자리에 T를 사용할 수 있음을 알려준다.여기서 Box 클래스는 T를 content 필드의 타입으로 사용했다. 즉 Box 클래스는 T가 무엇인지 모르지만,Box 객체가 생성될 시점에 다른 타입으로 대체된다는걸 알고있다. package ch13.sec01;public class GenericEx { public static void main(Stri..
제네릭
·
Kotlin
제네릭 (Generic) 이란 클래스 내부에서 사용할 자료형을 나중에 인스턴스를 생성할 때 확정한다. 자료형의 객체들을 다루는 메서드나 클래스에서 컴파일 시간에 자료형을 검사해 적당한 자료형으로 선택할 수 있게 하기 위해 사용한다. 제네릭을 사용하면 객체의 자료형을 컴파일할 때 체크하기 때문에, 객체 자료형의 안전성을 높이고 형 변환의 번거로움이 줄어든다. 제네릭 사용방법 앵글브라켓() 사이에 형식 매개변수를 넣어 선언한다. 이때 형식 매개변수는 하나 이상 지정 가능하다. 형식 매개변수는 자료형을 대표하는 용어로 T와 같이 특정 영문 대문자를 사용한다. 제네릭을 사용하면서 얻을 수 있는 장점은 의도하지 않은 자료형의 객체를 지정하는것을 막고 객체를 사용할 때 원래의 자료형에서 다른 자료형으로 형 변환시 ..