Boolean.getBoolean(String name)과 Boolean.parseBoolean(String s)의 차이

2313 단어 Java
최근 에 Boolean 을 사용 하고 있 습 니 다.장면 은 String 의 true 나 false 가 boolean 의 기본 유형의 불 형 으로 바 뀌 었 습 니 다.임의로 getBoolen 을 선 택 했 지만 유닛 테스트 를 할 때 검증 이 통과 되 지 않 았 습 니 다.
Boolean 의 소스 코드 를 자세히 보고 나 서 야 문제점 을 발견 했다.
Boolean 이 boolean 으로 돌아 가 는 공유 방법 은 모두 두 가지 가 있 는데,제목 에 언급 된 Boolean.getBoolean(String name)과 Boolean.parseBoolean(String s)두 가지 방법 이다.
그들 은 toBoolean 의 개인 정적 방법 을 호출 할 것 입 니 다.다른 점 은 Boolean.getBoolean 은 전송 인삼 에 따라 자바 System 의 매개 변수 변 수 를 찾 습 니 다.시스템 에 이 변수 가 존재 하면 해당 하 는 boolean 을 되 돌려 주 고 그렇지 않 으 면 false 로 돌아 갑 니 다.
부분 코드 붙 이기:
Boolean.getBoolean:
public static boolean getBoolean(String name) {
        boolean result = false;
        try {
            result = toBoolean(System.getProperty(name));
        } catch (IllegalArgumentException e) {
        } catch (NullPointerException e) {
        }
        return result;
    }

Boolean.parseBoolean:
public static boolean parseBoolean(String s) {
        return toBoolean(s);
    }

toBoolean:
private static boolean toBoolean(String name) {
        return ((name != null) && name.equalsIgnoreCase("true"));
    }

Boolean 을 볼 때 일부 개발 세부 사항 이 비교적 좋 은 것 을 발견 했다.예 를 들 어 우 리 는 new Boolean(boolean value)이나 new Boolean(String s)방식 으로 변 수 를 설명 하 는 것 을 최대한 적 게 사용 하면 메모리 와 속도 에 있어 서 모두 가치 가 없다.새로운 대상 을 예화 해 야 하지 않 는 다 면.우 리 는 가능 한 한 정적 공장 모드 valueof(boolean)를 사용 하여 더 좋 은 메모리 사용 과 속 도 를 얻 습 니 다.
또 하 나 는 Boolean 의 자동 포장 autoboxing 과 분해 작업 unboxing 의 사용 입 니 다.Oacle 홈 페이지 를 참조 하여 autoboxing 과 unboxing 에 대한 정 리 를 참조 하 십시오.
Autoboxing and unboxing lets developers write cleaner code, making it easier to read. The following table lists the primitive types and their corresponding wrapper classes, which are used by the Java compiler for autoboxing and unboxing:
Primitive type
Wrapper class
boolean
Boolean
byte
Byte
char
Character
float
Float
int
Integer
long
Long
short
Short
double
Double
참고:
https://stackoverflow.com/questions/3882095/booleans-conditional-operators-and-autoboxing
https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.25

좋은 웹페이지 즐겨찾기