Object 와 제네릭을 사용하는 것의 차이점?
제네릭(Generics)의 등장
자바에서 다양한 타입의 객체를 다루는 경우, 제네릭이 등장하기 전에는 Object를 사용했다.
Object 와 제네릭을 사용하는 것의 차이점?
-
타입 안정성
Object는 모든 클래스의 부모 클래스이므로, 어떤 타입의 객체도 다룰 수 있다. 이는 컴파일러가 타입 안정성을 검사하지 않으므로, 런타임에 에러가 발생할 수 있다. 제네릭을 사용하면 컴파일러가 타입을 검사해줘서 런타임 에러를 방지할 수 있다.
-
코드 가독성
Object를 사용하면 코드 가독성이 떨어진다. 타입이 명시되어 있지 않기 때문이다. 반면 제네릭은 타입이 명시되어 있기 때문에 가독성이 향상된다.
-
코드 재사용성
Object를 사용하면 코드 재사용성이 떨어진다. 다시 사용할 때마다 타입 캐스팅을 해야하기 때문이다. 반면, 제네릭을 사용하면 타입 캐스팅을 하지 않아도 됨으로 코드 재사용성이 향상된다.
package genericsExam; public class Champion<T> { T passive; public T getPassive() { return passive; } public void setPassive(T passive) { this.passive = passive; } }
public class App { public static void main(String[] args) { System.out.println("WhatSup"); Champion<String> champion = new Champion<>(); champion.setPassive("리븐 평타 캔슬 추가 데미지"); String passive = champion.getPassive(); System.out.println("passive : " + passive); } }
제네릭을 사용한 Champion 클래스 인스턴스를 App 클래스에서 사용할 때, 다음과 같이 “Champion <타입> " 으로 선언하여 사용할 수 있다.타입>
결론
따라서, 타입 캐스팅을 하지 않아도 되며 코드 재사용성이 향상된다.
Leave a comment