언어/Java

Java 제네릭이란?

DH_PARK 2024. 9. 30. 12:40

제네릭 (Generic) = 일반적인

자료형 정하는거를 객체 생성시점으로 미루는것.

  • <> 연산자를 사용함.
  • 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법

제네릭 타입의 장점 :

  • 타입 안정성
    • 의도하지 않은 타입의 객체가 저장되는 것을 막는다.
    • 저장된 객체를 꺼내올 때 다른 타입으로 잘못 형변환하여 발생할 수 있는 오류를 줄인다.
  • 타입 안정성(type safety)
  • 코드가 간결해진다

단점 : 다운캐스팅을 할 필요는 없지만 정해진 자료형만 사용가능하다.

 

public class Box <T> {
   private T item ; } //어떤 타입의 item 도 담을 수 있다.

 

괄호 꺾쇠 안에 타입명을 기재한다. 따로 지정해주지 않으면 String타입으로 지정되어 문자열 데이터만 리스트에 적재할 수 있게 된다.

 

ArrayList<String> list = new ArrayList<>(); 
// String 타입의 list 선언
//오른쪽 <> 안에 타입을 넣지 않아도 왼쪽에서 지정된 타입을 바탕으로 컴파일러가 우측의 다이아몬드 연산자의
//타입을 알아서 추론해준다.

 

객체를 생성할 때에도 사용이 가능하다 .

 

Person<String> person = new Person<>();
//String 타입으로 생성한 person 객체
//person 객체는 person.length() 와 같은 String 클래스의 메소드들을 사용할 수 있다.

 

'언어 > Java' 카테고리의 다른 글

자바의 컬렉션이란?  (0) 2024.09.30
자바 Property란?  (1) 2024.09.30
접근한정자란?  (0) 2024.09.30
업캐스팅 , 다운캐스팅이란?  (0) 2024.09.25
추상클래스와 interface 의 차이?  (0) 2024.09.23