비디오: [깜따긔야] 자바 기초 16강 생성자 2024
Java에서 A 제네릭 클래스 는 컴파일시 프로그래머가 지정한 특정 유형에서 작동 할 수있는 클래스입니다 시각. 이를 달성하기 위해 클래스 정의는 유형 (예: int 또는 String)을 나타내는 변수로 작동하는 유형 매개 변수 를 사용합니다.
제네릭 클래스를 만들려면 클래스 이름 뒤에 type 매개 변수를 꺾쇠 괄호로 묶습니다. type 매개 변수는 유형을 사용하는 클래스에서 사용할 수있는 이름을 지정합니다. 예를 들어, 다음은 ArrayList 클래스에 대한 클래스 선언의 단순화 된 버전입니다.
public 형식의 매개 변수에 초점을 맞추기 위해 extends 및 implements 절을 생략했습니다. E 매개 변수는 목록에 저장된 요소의 유형을 지정합니다.generic 클래스의 인스턴스를 만들려면 다음과 같이 type 매개 변수 대신 사용할 실제 유형을 제공해야합니다.
ArrayList myArrayList;
여기서 E 매개 변수는 String이므로 ArrayList 클래스의이 인스턴스에 대한 요소 유형은 String입니다.
public boolean add (E o) {// 메소드의 본문 생략 (감사합니다)}
일반적으로 매개 변수 유형을 볼 것으로 예상되는 경우 문자 E가 표시됩니다. 따라서이 메소드 선언은 o 매개 변수의 유형이 형식 유형 매개 변수 E에 대해 지정된 유형임을 지정합니다. E가 String 인 경우 add 메소드는 String 객체 만 허용합니다. String 파라미터 이외의 것을 건네주는 add 메소드를 호출하면 (자), 컴파일러는 에러 메세지를 생성합니다.
유형 매개 변수를 리턴 유형으로 사용할 수도 있습니다. 다음은 ArrayList 클래스 get 메소드에 대한 선언입니다.
public E get (int index) {// 메소드 생략 본문 (환영합니다)}여기에서 E가 반환 유형으로 지정됩니다. 즉, E가 String 인 경우이 메서드는 String 객체를 반환합니다.
제네릭의 주요 이점은 컴파일시에 유형 검사가 발생한다는 것입니다. 따라서 형식 유형 매개 변수의 값을 지정하면 컴파일러는 매개 변수가 의미하는 유형 확인을 수행하는 방법을 알고 있습니다. 이것이 Employee 컬렉션에 String 객체를 추가하지 못하도록하는 방법입니다.