2016-10-13 7 views
0

Udacity 초보자가 Android 앱을 개발하는 과정에서 초보자가 배우는 간단한 방법 중 하나를 간단한 방법으로 소개합니다. 체인 방법이 작동하기 위해서는, 최초의 반환 값은 동급 다음과 같은 방법을 포함해야한다는 것입니다 무엇 Udacity의의 강사는 말한다왜 내 체인 메소드가 Java에서 작동하지 않습니까?

public void submitOrder(View view) { 

    /** 
    * Chaining method example given by Udacity. 
    * stringName variable successfully receives the string value. 
    */ 
    EditText inputName = (EditText) findViewById(R.id.name_input); 
    String stringName = inputName.getText().toString(); 

    /** 
    * My own example. 
    * Cannot resolve method 'toString()' error message occurs. 
    */ 
    CheckBox checkBox = (CheckBox) findViewById(R.id.check_box); 
    String hasWhippedCream = checkBox.isChecked().toString(); 

    // What I found by searching on google to make 'toString' work on Boolean 
    String has = Boolean.toString(checkBox.isChecked()); 

} 

:

여기에 코드의 조각입니다.

는 위의 예를 들어, 그녀는 inputName.getText() 반환 Editable 객체 & 그것의 클래스 내 toString() 방법을 가지고는, 따라서이 체인 방법이 유효하고 그 위에 toString() 전화에 문자열을 반환하고 문자열 이름으로 저장됩니다 설명했다.

나는 Boolean 반환에 동일한 체이닝 방법의 동일한 형식을 구현하려고하면 혼란이 생깁니다. 위의 내 자신의 예제에서 boolean 반환 유형을 checkBox.isChecked(), 호출합니다. 자, Boolean에는 안드로이드 문서에 따라 toString() 방법이 있으므로 작동해야하지만 오류 메시지가 나타나지 않습니다.

그러나, 나는 구글에서 볼 수있는 형식은 수행 업무 :

String has = Boolean.toString(checkBox.isChecked()) 

질문 :

  • 왜 부울 반환 형식에 내 체인 방법이 작동하지 않습니다 있는지?
  • 위와 같이 연결 방법을 만들 때 따라야 할 형식에 대한 규칙 집합이 있습니까? Boolean은 위의 그림과 같이 inputName.getText()과 다른 체이닝 방식을 사용하는 이유는 무엇입니까?
+7

'부울'은'객체'입니다 ..'boolean'은 다른 한편으로는 원시적이며 메소드를 가지고 있지 않습니다. – SomeJavaGuy

+0

@KevinEsche 그 문제에 대한 답변이 아닌 코멘트로 답을 달아주세요. – nbrooks

+0

@ Kevin Esche Kevin에게 감사드립니다. 나를 올바른 질문으로 인도한다. 나는 정말로 초보자이며 검색 권한조차도 할 수 없다. (.) 감사합니다. :) – lostsoul

답변

2

Booleanboolean은 Java에서 다른 유형입니다 (B 참조). Boolean은 래퍼 클래스이며 기본 데이터 형식 (이 경우 boolean)을 개체 및 개체를 프리미티브로 변환하는 메커니즘을 제공합니다.

이 작동 : Boolean.toString(checkBox.isChecked()); 를 그것이 Boolean 객체에 checkBox에서isChecked() 메소드에 의해 반환 된 원시적 인 부울을 변환하는 부울 래퍼 클래스의 정적 메서드 toString 사용하기 때문에. 래퍼 클래스에 대한

상세 정보 :

  • http://www.javatpoint.com/wrapper-class-in-java
    1. https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html
    2. 단순히 말했다 isChecked() 돌아갑니다 메소드 체인을 할 수없는, 그래서 어떤 방법이없는 원시 boolean을, 그곳에.

    관련 문제