본문 바로가기

WEB/Java

Generic

제네릭

클래스나 메소드에 사용될 데이터 타입나중에 확장하는 것

 

기본적인 사용법

클래스

class Animal<T> {
    private T info;
    
    Animal(T info){
        this.info=info;
    }

    public T getInfo() {
        return info;
    }

    public void setInfo(T info) {
        this.info = info;
    }
}
public class Main{
    public static void main(String[] args) {
        Animal<String> animal=new Animal<String >("너구리");
    }
}

 

메소드

public  static <T> void swap(T a,T b){
        T c=a;
        a=b;
        b=c;
    }

 

참고로

T 자리에는 참조형만 올 수 있다 !!!

int, char ,, 안됨, wrapper 사용해야함

 

 

사용하는 이유 

1. 코드의 중복을 제거 -편의성을 위해

2. 타입이 안전하지 않은 경우  -Object 지정시

 

그외에도 여러 이유로 데이터 타입을 확정시키고 싶지 않은 경우 .. 

 

가능한 데이터 타입을 제한하고 싶을 때

extends 사용

-class 클래스명<T extends 클래스나 인터페이스>

super 사용

-부모를 제한 하는 것 ..

 

'WEB > Java' 카테고리의 다른 글

예외처리  (1) 2023.12.07
Optioinal  (0) 2023.12.06
인터페이스  (0) 2023.12.06
toString()  (0) 2023.11.30
strip()  (0) 2023.11.27