백엔드/Java

[Java] Generic 제너릭 타입 - 개념,사용법,활용법

클래스

class Test<T>{
    private T t;
      
    public void set(T t) {
        this.t = t;
    }
  
    public T get() {
        return t;
    }
}

 

아래는 Method Generic Type 사용법이다.

메소드 제너릭 타입은 Class에 Generic Type을 선언하지 않고, 각 메소드마다 Generic Type을 선언해 사용할수 있다.

아래의 코드 처럼

메소드의 파라미터의 T 이 선언되어 있다면, 리턴타입 바로앞에 <T> 제너릭 타입을 선언해주어야한다.

 메소드의 파라미터에 <T>가 선언되어 있다면, ReturnType 앞에 <T>를 선언하자.

class TestMethod {
    public static <T> List<T> method(List<T> list, T item) {
        list.add(item);
        return list;
    }
}

 

아래는 WildCard Generic Type 사용법이다.

Generic 타입에는 <?>도 존재한다.

?는 알수없는 타입이며, 사용법으로는 아래와같다

<?> : 모든 객체 자료형, 내부적으로는 Object로 인식

<? super 객체형> : 명시된 객체자료형의 상위 객체, 내부적으로는 Object로 인식

<? extends 객체자료형> : 명시된 객체자료형을 상속한 하위객체, 내부적으로는 명시된 객체 자료형으로 인식

class TestWildCard {
      
    public List<? extends Object> wildMethod1() {
           return new ArrayList<Long>();
    }
 
    public <T> List<? extends String> wildMethod12 (T t) {
           return new ArrayList<String>();
    }
 
    public List<?> method3() {
           return new ArrayList<>();
    }
}

 

 Generic Type 사용시 주의해야할 문법들이다.

 

- Generic Type으로는 전역변수(Static)를 선언할수 없다.

- Generic Type으로는 인스턴스를 생성할수 없다.

 

타입의 매개변수는 T 말고도 존재한다

 

E - Element

K - Key

N - Number

T - Type

V - Value

 

Generic 타입이 인스턴스화 될때, 컴파일러는 타입파라미터와 관련된 정보를 제거한다.

제너릭을 사용하기 이전의 라이브러리 등과 호완성을 유지하기 위함.

 

 

출처: https://namjackson.tistory.com/18

 

[Java/Android]Java Generic 제너릭 타입 - 개념,사용법,활용법

Genric Java Genric 타입이란 무엇인가? Genric은 일반적인 이란 뜻을 가진 단어이다. 프로그래밍의 Generic은 - 일반적인 코드를 작성하고, 이코드를 다양한 타입의 객체에 대하여 재사용하는 프로그래

namjackson.tistory.com

 

'백엔드 > Java' 카테고리의 다른 글

[Java] 배열 정렬(Arrays)  (0) 2021.08.04
[Java] 소수 반올림(Math.round, String.format)  (0) 2021.08.04
[Java] Parameter... 표현  (0) 2021.04.01