2016-05-11 9 views
-1

あるクラスの情報を他のクラスに持ってくる必要があるため、getResultadoで返すfinの最終的な値が必要です。あるクラスから別のクラスにオブジェクトを取得しますか?

public class Setter { 
String fin = ""; 
public Setter(String result){ 
fin = result; 
} 
public String getResultado(String inicio){ 
return fin; 
} 
} 

は、ここで私はフィンを実装する必要があり、他のクラスである:

public Final(){ 
Setter t = getResultado(); 
    System.out.println(t); 
+1

'新しいSetter(" XX ")。getResultado()' Setterのインスタンスが必要です – sidgate

+0

@sidgateのように、オブジェクトのインスタンスを作成する/参照を初期化する必要があります。今は値のないポインタしかありません。間違っていない場合は、['NullPointerException'](https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html)を取得する必要がありますか? –

+0

しかし、私はすでに他のクラスとフィンの価値を確立しているので、これは私の結果を変えるでしょう。 –

答えて

0

問題は非常に簡単です: あなたのSetterクラスのインスタンスを初期化することはありません。 Setterオブジェクトへの参照/ポインタを作成しますが、そのオブジェクトはnullで、このクラスに含まれるメソッドを呼び出そうとしています。だから、おそらくNullPointerExceptionが得られるはずです。これに対する修正は簡単です、ただ

は、オブジェクトを初期化:

Setter t = new Setter("my string");

は、セッターのインスタンスを通じてメソッドを呼び出します。

t.getResultado();

編集: あなたがオブジェクトSetterを作成するときに、ちょうどこのような最初のものの下に第二のコンストラクタを追加し、変数fin値を与えたくない:

public Setter() { 
    //do whatever, maybe call the getResultado() method right here? 
} 

それはあなたがセッターはパラメータを指定せずにオブジェクトを作成することができますか変数の値を変更します。

+0

しかし、これは私の結果を変更するでしょうか?私は既にフィンに値を与える別のクラスを持っています –

+0

はい、これは、パラメータを必要としない2番目のコンストラクタを作成することです。 –

+0

だから私はこれを次のように変更します:public class Setter { String fin = ""; パブリックセッター(文字列結果){ fin = result; }公共ボイドセッター(){ }パブリック文字getResultado(文字列INICIO){フィン リターン。 } } –

関連する問題