非常に多くの場合、ドット表記でアクセスされる 'ネストされた'クラスのネストされていないクラスコンポジションではない静的変数を参照します。構成:ヌルポイント認識なしでドット表記で非静的変数にアクセスするにはどうすればよいですか?
例:
int a = getClassA().classB.classC.x; where
getClassA()は、クラスA型のオブジェクトを返し、xはアクセスしたい変数です。
classBはClassAの変数です。
classCはClassBの変数です。
xはClassCの変数です。
しかし、同様のテストシナリオを再作成しようとすると、NullPointerExceptionエラーが発生します。
コード
public class Main()
{
public static void main(String[] args) {
int a = getClassA().classB.classC.x;
}
}
public class ClassA
{
ClassB classB;
}
public class ClassB
{
ClassC classC;
}
public class ClassC
{
int x = 1;
}
//Class Main, A, B and C are in separate files.
アドオン
C#で自動実装プロパティがあることをどこかで読んでください。上記の例では、クラスAは
public Class A {
private ClassB _classB;
public ClassB classB
{
get {
if (_classB == null) _classB = new ClassB();
return _classB; }
set {_classB = value; }
}
}
になるので、ClassBはドット表記でアクセスされるとインスタンス化されます。 Javaに似たものがありますか?
これに関するお手伝いをお待ちしております。
ありがとうございます。