아이템 29. 이왕이면 제네릭타입으로 만들어라
이펙티브 자바아이템 29. 이왕이면 제네릭타입으로 만들어라아이템 7. 다쓴 객체의 참조를 해제하라에서 만들었던 Stack 클래스를 제네릭타입으로 변환하는것이다. 123456789101112131415161718192021222324252627282930313233343 ...
Read more
레디스 접속용 클라이언트
레디스 접속용 클라이언트레디스 접속용 클라이언트가 몇개 없는데 그중에 RedisDesktopManager가 제일 편한거 같은데언제부터인지 클러스터 모드로 셋팅된 레디스에 접속시에 데이터가 모든 node에 있는것 처럼보이고데이터도 잘보이지 않는다. 버전 별로 테스트 해보 ...
Read more
아이템 28. 배열보단 리스트를 사용하라
이펙티브 자바아이템 28. 배열보단 리스트를 사용하라배열은 A가 B의 하위 타입이면 A[]이 B[]의 하위타입이다. 하지만 제네릭은 List< A > 가 List< B >의 하위타입은 아니다 그래서 불변이다. 어떻게 보면 제네릭이 문제가 있는것 처 ...
Read more
아이템 27. 비검사 경고를 제거하라
이펙티브 자바아이템 27. 비검사 경고를 제거하라제네릭을 사용하면 비검사경고가 많이 보일것이다 가능한 비검사 에러를 제거 하자. 컴파일 명령줄 인수에 -Xlint:unchecked를 추가하면 자세한 코멘트가 보인다. 만약 타입 안정성이 확보 되었다고 판단되면 @Supp ...
Read more
java xlint 옵션에 대한 설명
javac Xlint optionsxlint 옵션에 대한 설명 실행은 -Xlint:name 으로 하고 name은 아래의 이름중 하나 입니다. cast : 불필요한 cast에 대해서 경고를 나타냅니다. 1234String s = (String) "Hello ...
Read more
코드리뷰(code review)
코드리뷰(code review)지금까지 소프트웨어 개발 회사를 다니면서 명시적으로나 암묵적으로나 코드리뷰를 했던 경험이 있습니다. 그런데 코드리뷰 후가 문제가 되는 경우가 있다. 사실 코드에서 에러가 나지는 않지만 명시적이지 않은 변수명 및 기능은 바꼈지만 이름이 ...
Read more
아이템 26. raw 타입은 사용하지 말자.
이펙티브 자바아이템 26. raw 타입은 사용하지 말자.12345678910111213141516package com.github.sejoung.codetest.generics;public class Stamp { private String name; ...
Read more
아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라
이펙티브 자바아이템 25. 톱레벨 클래스는 한 파일에 하나만 담으라소스파일에 톱레벨 클래스를 여러게 만들어도 자바 컴파일러는 문제가 없다. 아래는 Utensil.java 클래스에 톱레벨 클래스를 두개 지정해도 정상적이다. 123456789101112package com ...
Read more
아이템 24. 맴버클래스는 되도록 static으로 만들자
이펙티브 자바아이템 24. 맴버클래스는 되도록 static으로 만들자ava 프로그래밍 언어를 사용하면 다른 클래스에서 클래스를 정의 할 수 있습니다.이러한 클래스는 중첩 클래스(Nested Classes) 라고하며 여기에 설명되어 있습니다. 12345678class O ...
Read more
아이템 23. 테그달린 클래스보다 클래스 계층구조를 활용하라.
이펙티브 자바아이템 23. 테그달린 클래스보다 클래스 계층구조를 활용하라.테그 달린 클래스의 단점은 여러 구현이 하나의 클래스에 담겨서 장황하고 오류를 내기 쉬우며 비효율 적이다. 테그 달린 구조는 클래스 계층구조의 아류일뿐이다. 1234567891011121314 ...
Read more