0
ここに私の例があります:nullで初期化された引数を渡し、後で正しい値でオブジェクトを初期化できるかどうかを知りたい。nullで初期化されたクラスオブジェクト間の参照
private class Source {
String str;
String getStringValue() {
return str;
}
void setStringValue(String str) {
this.str = str;
}
}
private class UserSource {
Source src;
UserSource(Source src) {
this.src = src;
}
String getValue() {
return src.getStringValue();
}
void setValue(String str) {
src.setStringValue(str);
}
}
ここで私はどのように使用していますか。
Source srcW = new Source();
UserSource userSourceW = new UserSource(srcW);
srcW.setStringValue("Second Value");
System.out.println("From UserSource:" + userSourceW.getValue());
userSourceW.setValue("Is not Second");
System.out.println("From Source:" + srcW.getStringValue());
出力:
From UserSource:Second Value
From Source:Is not Second
しかし、のように使用することが可能であるかどうかを知りたい:出力は
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
はです。もちろん
Source srcN = null; // YES I want to assign Not initialized!
UserSource userSourceN = new UserSource(srcN);
srcN = new Source();
srcN.setStringValue("First Value");
System.out.println("From UserSource:" + userSourceN.getValue());
そこに代替?