본문 바로가기

RETROSPECT

[자바의신2 21장] 회고

Finding

  • private 변수, getter, setter, Serializable를 구현해야만 제대로 된 DTO라고 할 수 있다.
  • 제네릭은 실행시에 예외가 발생하는 것을 컴파일할 때 점검할 수 있도록 도와준다.
  • 제네릭 타입의 이름 정하기
    • E: 요소(Element, 자바 컬렉션에서 주로 사용됨)
    • K: 키
    • N: 숫자
    • T: 타입
    • V: 값
    • S,U,V: 두 번째, 세 번째, 네 번째에 선언된 타입
  • 와일드카드
    • 어떤 객체를 wildcard로 선언하고, 그 객체의 값을 가져올 수는 있지만, 와일드카드로 객체를 선언했을 때에는 특정 타입으로 값을 지정하는 것은 불가능하다.
@Test
void test_wildcard_setup(){
    WildcardGeneric<?> wildcard = new WildcardGeneric<String>();
    wildcard.setWildcard("A"); // 알수없는 타입에 String을 지정할 수 없다는 뜻이다.
}
  • Bounded Wildcards
    • <? extends 타입> 형태이다.
    • 타입을 제한할때 사용된다.
@Test
void test_callBoundedWildcardMethod(){
    wildcardGeneric<Bus> wildcard = new WildcardGeneric<>();
    wildcard.setWildcard(new Bus("Mustang"));
    boundedWildcardMethod(wildcard);
}

private void boundedWildcardMethod(WildcardGeneric<? extends Car> c) {
	Car value= c.getWildcard();
    System.out.println(value);
}

Feeling

  • 와일드카드에 대한 개념이 잡혀서 좋았다.