Очень часто я вижу нестационарную переменную в «вложенных» классах (не совсем внутри класса типа вложенной, но классовой композиции), доступ к которой осуществляется через точечную нотацию.Состав: Как получить доступ к нестационарным переменным с точечной записью без использования nullpointerexception?
Например.
int a = getClassA().classB.classC.x; where
getClassA() возвращает объект типа Class A и x - переменная, к которой мы стремимся получить доступ.
класс B является переменной в 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# есть авто реализовано свойство. Для приведенного выше примера, класс А будет
public Class A {
private ClassB _classB;
public ClassB classB
{
get {
if (_classB == null) _classB = new ClassB();
return _classB; }
set {_classB = value; }
}
}
Так, ClassB инстанциируются как он доступен через точечную нотацию. Есть что-то подобное в Java?
Цените любую помощь по этому вопросу.
спасибо.