2014-02-18 5 views
4

를 얻을 대 모두를 잘 게터가 있다고처럼 게터는 같습니다있다 : -> 게터 부울 (부울)

  • 객체 부울입니다 -

    • 원시적 인 부울> 게터 얻을

    예 :

    public class Test { 
    
        private boolean primitive; 
        private Boolean object; 
    
        public boolean isPrimitive() { 
         return primitive; 
        } 
        public Boolean getObject() { 
         return object; 
        } 
        //.. 
    } 
    

    질문 :

    이 내용이 정확하고 부울 값에 대해 getter를 지정하는 방법이있는 사양이나 문서가 있습니까? 아니면 이것은 일반적인 가정 일뿐입니다. 내가 예를 들어 렸기 때문에 부탁 해요

    wsimport의는 게터 이 Boolean 객체에 대한입니다 생성합니다. 이것은 도구 버그입니까, 아니면 허용되고 올바른 것입니까?

    반면에 일부 프레임 워크는 이러한 getter에서 제대로 작동하지 않습니다. 예를 들어 JSF (EL) 또는 Dozer.

  • +9

    참조 변수의 가장 rudest 한 이름은'object'입니다. 제 생각에는 단지'object'가 –

    +1

    입니다. 부울 이름이 형용사이고 명사가 아닌 경우. –

    +0

    @CeilingGecko 많은 lib가 동의하지 않습니다. 보통 초록/수퍼 타입을 다룰 때 ... Gson, 예를 들어 ...'JsonElement.isJsonArray()' –

    답변

    7

    boolean myField의 게터 방법은 getMyfield() 또는 isMyField()입니다 (사용자가 선택해야합니다). 개인적으로 두 번째 형식을 사용합니다. 많은 소스 코드 생성 도구가 그러합니다.

    이 형식은 표준 형식이며 JavaBeans 사양에 정의되어 있습니다. 워드 프로세서에서 http://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/

    인용구 : 다음 섹션이 문서의 8.3.2를 참조

    In addition, for boolean properties, we allow a getter method to match the pattern: 
    
        public boolean is<PropertyName>(); 
    

    문서는 Boolean 클래스와 같은 원시 래퍼에 대해 얘기하지 않습니다.

    +1

    ... 부울 속성을 언급하지 않고 혼자 보자. –

    2
    public boolean isPrimitive() { 
        return primitive;  // "is" used because the value can be either true or false. Its like asking isTrue?? 
    } 
    public Boolean getObject() { 
        return object;   // "get" is used because the value returned can be either true, false or null. So, the third state 'null' makes you wonder if 'is' should be used or 'get'. get is more appropriate as Boolean can also have null. 
    

    하지만 솔직히 말해서, 개발자에게 맡겼습니다. 부울 값에 getBoolean을 사용할 때 "잘못된"것은 없습니다 ('is'가 더 의미가 있습니다.).