2012-11-09 4 views
0

내가 객관화와 큐를 구현하기 위해 노력하고있어 :취급 null 값

이 코드에 뭔가 문제가있다
void addQueue(String bucket, String value){ 
    Long next = ofy().load().type(OfyQueue.class) 
      .order("-id").first().get().getId(); 
    OfyQueue q = new OfyQueue(bucket, value, next); 
    ofy().save().entity(q).now(); 
} 
void removeQueue(String bucket, String value){ 
    OfyQueue q = ofy().load().type(OfyQueue.class) 
      .filter("value", value).order("-id").first().get(); 
    ofy().delete().entity(q); 
} 

:

  • next null이 될 수는? 그래서 새로운 OfyQueue을 만들 때 그것은 null 값
  • , q가 null 일 수도 있습니다. q가 null이거나 ofy()인지 명시 적으로 테스트해야합니까? delete(). 엔티티는 null 값 무시 무시

답변

1

QfyQueue.getId()는 @Id로 주석 된 필드를 반환한다고 가정하고 addQueue() 메소드에서 null을 반환하지 않습니다. 그러나 first(). get()은 조건과 일치하는 요소가없는 경우 null을 반환합니다. 대신 던져진 예외를 원하면 safeGet()을 호출 할 수 있습니다.

removeQueue()에서 널 (null) 'q'를 명시 적으로 확인해야합니다. delete 메소드에 null을 전달하면 NPE가 생성됩니다.