제네릭
-
제네릭 메소드와 배열JAVA/Generic 2020. 10. 18. 21:09
배열도 인스턴스이므로 제네릭 매개변수에 전달이 가능하다. 하지만, 다음과 같은 문장을 쓸 수 없다. 아래와 같이 ShowArrayData함수의 매개변수로 배열 인스턴스를 선언하면, 매개변수에 전달되는 참조 값을 배열 인스턴스의 참조 값으로 제한할 수 있다. 그리고 이렇게 되면 참조 값은 배열 인스턴스의 참조 값임이 보장되므로 []연산을 허용한다. 아래와 같이 []연산이 필요하면 매개변수의 선언을 통해서 전달되는 참조 값을 배열의 참조 값으로 제한해야 한다. 예제 프로그램 실행결과 소스 코드 더보기 public class Exam1 { public static void main(String[] args) { String[] stArr = new String[] { "Hi", "I am so happy", ..
-
매개변수의 자료형 제한JAVA/Generic 2020. 10. 18. 20:52
개념 매개변수의 자료형 제한 예제1 프로그램 실행결과 소스 코드 더보기 interface SimpleInterface { public void ShowYourName();//추상 메소드 } class UpperClass { public void ShowYourAncestor(){System.out.println("UpperClass");} } class AAA extends UpperClass implements SimpleInterface { @Override public void ShowYourName()//메소드 정의 { System.out.println("AAA"); } } class BBB extends UpperClass implements SimpleInterface { @Override p..
-
제네릭 클래스의 이해와 설계JAVA/Generic 2020. 10. 18. 18:17
1. 제네릭 클래스가 필요한 이유 아래와 같이 클래스가 있다고 하자. 위의 클래스에서 구현의 편의만 놓고 보면, FruitBox 클래스가 더 좋아 보인다. 그런데, FruitBox 클래스는 자료형에 안전하지 못하다는 단점이 있다. AppleBox와 OrangeBox는 구현의 불편함이 따르는 단점이 있다. 그러나 자료형에 안전하다는 장점이 있다. AppleBox, OrangeBox의 장점인 자료형의 안전성과 FruitBox의 장점인 구현의 편의성을 한데 모은 것이 바로 제네릭이다. 자료형의 안전성에 대한 예제1 프로그램 실행 및 에러 발생 문구 위에서 실행 중간에 Class Casting Exception이 발생하는데 위와 같이 실행 중간에 발생하는 예외는 컴파일 과정에서 발견되는 오류 상황보다 발견 및 ..