레이블이 java인 게시물을 표시합니다. 모든 게시물 표시
레이블이 java인 게시물을 표시합니다. 모든 게시물 표시

2014년 3월 21일 금요일

do-while one-liner


List<E> cached = new ArrayList<E>(); do cached.add(persistableResource.loadFrom(cursor)); while (cursor.moveToNext()); return cached;

GitHub Android Client 코드 중에서 do-while의 중괄호마저 빼버린 코드를 봤다. 나름 잘 읽힌다. cursor를 Collection으로 보고 mapping한 것 같기도 하고.
이 코드에서 특히한 또다른 점은 try-finally 짝을 적극적으로 사용한다는 점이다.

2011년 9월 2일 금요일

throw up

Exception up = new Exception("Something is really wrong.");
throw up;

발표 끝에 재미난 코드를 추가하려고 검색하다가 발견한 것. Exception을 만들면서 변수에 담아본 적이 없는데 그걸 깨트리니 이런 재미가 생기는구나.

-- 어딘지는 까먹었음.

2011년 9월 1일 목요일

testMethod()

public void whyMyTestMethodDoesntRun() { ... }

JUnit을 이용하여 단위테스트를 하다가 자신이 만든 테스트 메소드가 실행되지 않아서 고민하는 개발자님~ JUnit3까지는 테스트메소드의 이름이 test~ 로 시작해야만 한답니다.

JUnit4에서 어노테이션을 사용한 이유가 있었네.

-- 실제 경험에서

compare ints

return v1 - v2;

정수형의 비교함수를 구현할때 간단하게 이렇게 했던적이 많았는데, v1이 큰 양수고 v2가 큰 음수라고 하면 오버플로가 발생하여 잘못된 결과를 가져올 수 있다.

-- 'the Practice of Programming' 에서

list size == list asSet size

어떤 리스트에 담긴 값들이 서로 다른지 확인해야 하는 경우에 직접 이중루프를 돌리는 것보다는 이미 제공되는 set 라이브러리를 이용하면 어떨까?

new TreeSet(list).size() == list.size();

추가1. Set은 요소들의 중복을 처리해준다는 점을 응용한 것이다. 어떤 리스트에서 중복을 제거하고 싶을때도 set을 이용하면 된다.