2014-02-28 5 views
0

나는 하나의 클래스에서 다른 클래스로 String을 전달할 수없는 이유가 무엇인지 궁금합니다. 여기 내 구조 : 여기다른 클래스에서 문자열을 가져 오는 null이

public class A { 

    String myString; 

    public A(){ 
    } 

    public String getMyString(){ 
     return myString; 
    } 

    public void setMyString(String myString){ 
     this.myString = myString; 
    } 

    public void doSomethin(){ 
     String testString = "TEST"; 
     setMyString(testString); 
    } 

} 

그리고는 내 B 급 구조 :

public class B { 

    A myclassA; 

    public B(){ 
     myClassA = new A(); 
     createPieModel(myClassA.getMyString()); 
    } 

    public void createPieModel(String branch){ 
     System.out.println(branch); //getting null at this Point 
    } 

} 

가 왜 createPie 모델에서 null을 받고 오전이 주위 방법은 무엇입니까?

+0

은 적절한 들여 쓰기를 수행 –

+0

당신은 문자열이 –

+0

을 문자열 값을 설정하는 경우 ...해야 기대 'objects'는'classes'가 아니라'classes'에 있습니다. 'doSomethin()'또는'setMyString()'을 어디에서 호출하는지 알 수 없습니다. –

답변

4

당신이 문자열의 값을 설정하지, 당신은 두 가지 방법으로이를 해결할 수 있습니다 get 메소드

0

을 사용하기 전에 doSomethin() 메서드를 호출합니다.

public class B{ 
     A myclassA; 
     public B(){ 
     myClassA = new A(); 
     myClassA.setMyString("YOUR_MISSED_STRING"); // MISSED_STRING! :) 
     createPieModel(myClassA.getMyString()); 
     } 
     public void createPieModel(String branch){ 
     System.out.println(branch);//getting null at this Point 
     } 
    } 

또는

public class B{ 
     A myclassA; 
     public B(){ 
     myClassA = new A(); 
     myClassA.doSomething(); // missed invokation :) 
     createPieModel(myClassA.getMyString()); 
     } 
     public void createPieModel(String branch){ 
     System.out.println(branch);//getting null at this Point 
     } 
    } 
관련 문제