코드 효율성

1 분 소요

제네릭

  • 장점
    • 타입캐스팅에 의한 RuntimeException 방지 목적 - 제네릭 설정을 통해서 collection 타입을 설정하여 컴파일시점에서 오류코드 방지(제네릭을 설정하지 않은 collection의 경우 Object가 주입되기 때문에 collection객체에서 데이터를 추출할떄 타입이 맞지 않아 RuntimeException 이 발생한다.)
    • 컴파일 레벨에서 타ㅣㅂ캐스팅 오류를 감지
    • 좀더 안전한 프로그램 개발이 가능
  • 단점
    • 코드의 복잡석이 증가

무조건 제네릭(Generic)을 사용하도록 강제하지 않은 이유는?

과거에 작성되어진 코드들이 기존에 많이 사용되고 있기때문에 강제할 수 없다. 하지만, 앞으로 작성되어지는 코드들은 제너릭을 사용하도록 권장한다.(IDE에서 워닝 발생)

List타입과 List타입의 차이점은?

컴파일 레벨에서 아직 코드가 실행되지 않았지만 문법 오류에 대해서 타입 추론을 할 수 있다.

제네릭 ?(와일드카드) 타입은 무엇인가?

모든 타입을 허용할떄 사용한다. Object 대신 사용하도록 한다.

  • <?> : 모든 타입 허용

  • <? super 특정 클래스> : 특정 클래스의 사우이 클래스만 허용

  • <? extends 특정 클래스> : 특정 클래스의 하위 클래스만 허용

    public List<? extneds Map> method();

    리턴 가능한 타입은? HashMap 등…

타입 매개변수

jdk에서 적용된 Collection을 Genertic으로 사용하는 것은 쉽지만 직접 만들어야할 경우 상대적으로 어렵다.

public class SampleClass<T> {
	
}

상황에 따라 논리적으로 타입 매개변수를 제공하고 있다.(권장)

컴파일에는 제한이 없으나 코드 규칙성에 따라 권장하고 있다.

  • E : Element
  • K : Key
  • N : Number
  • T : Type
  • V : Value

@Override를 명시해야하는 이유

찾아보기~

Enum

프로그램 내부의 상수값을 정의하는 코드를 대체하는 용도로 사용되는 타입

jdk1.5에서 특수한 형태의 클래스로 추가되었다.

특징
  • Object를 상속하고 있다.
  • Enum은 불변객체이다. (멀티 쓰레드 환경에서 안전하게 사용할 수 있다.)
  • 일종의 Class이므로 멤버변수, 상수, 메서드를 가질 수 있다.
  • 생성자를 가질 수 있다.
  • 멤버변수를 가질 수 있다.
  • 메서드를 가질 수 있다.

태그:

카테고리:

업데이트:

댓글남기기