[EffectiveJava] item27 - 비검사 경고를 제거하라
16 Apr 2023 EffectiveJava제네릭을 사용하기 시작하면 수많은 컴파일러 경고를 보게 될 수있다.
대부분의 비검사 경고는 쉽게 제거가 가능하다.
비검사경고 제거
아래와 같이 코드를 잘못 작성했을 때의 예시를 들어보자.
Set<Lark> exaltation = new HastSet();
…
제네릭을 사용하기 시작하면 수많은 컴파일러 경고를 보게 될 수있다.
대부분의 비검사 경고는 쉽게 제거가 가능하다.
아래와 같이 코드를 잘못 작성했을 때의 예시를 들어보자.
Set<Lark> exaltation = new HastSet();
…
먼저 제네릭에 대해 간단하게 정의하고 출발하도록 하자. 클래스와 인터페이스 선언에 타입매개변수 (type parameter)가 쓰이면, 이를 제네릭 클래스 혹은 제네릭 인터페이스라 한다.
각각의 제네릭 타입은 일련의 매개변수화 타입을 정의한다. 먼저 클래스(혹은 인터페이스) 이름이 나오고. 이어서 꺽쇠괄호 안에 실제 타입 매개변수를 나열한다. 예를 들어, List<String>은 원소의 타입이...
class 하나당 왜 파일을 하나만 만들까? 모두 당연하게 해왔지만, 왜 이렇게 하는지에 대해 정의해볼까 한다.
보통 소스 파일 하나에 톱레벨 클래스를 여러 개 선언하더라도 자바 컴파일러는 불평하지 않는다. 하지만 아무런 득이 없을 뿐더러 심각한 위험을 감수해야 하는 행위다.
이렇게 하면 한 클래스가 여러가지로 정의 될...
중첩 클래스(nested class)란 다른 클래스 안에 정의된 클래스를 말한다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야 하며, 그외의 쓰임새가 있다면 톱레벨 클래스로 만드는 것을 권장한다.
중첩 클래스의 종류는 정적 멤버 클래스, (비정적) 멤버 클래스, 익명 클래스, 지역 클래스 이렇게 네가지이며, 이중 첫번째를 제외한 나머지는 내부...
이번 내용은 OOP에 관련된 내용이다. 객체지향언어인 자바를 좀더 객체지향적으로 사용할 수 있도록 정리된 글이다.
태그 달린 클래스 (tagged class)란 하나의 클래스안에 두 가지 이상의 의미를 표현할 수 있도록 현재 표현하는 의미의 태그값을 통해 클래스가 구분되고 있는 클래스이다.
태그클래스에 대한...