sách gpt4 ai đã đi

java - 组合:如何使用点表示法访问非静态变量而不出现空指针异常?

In lại 作者:行者123 更新时间:2023-12-01 09:35:22 30 4
mua khóa gpt4 Nike

我经常看到“嵌套”类中的非静态变量(不完全是内部类的嵌套,而是类组合)通过点表示法访问。

例如。

int a = getClassA().classB.classC.x; where 

getClassA() 返回一个 Class A 类型的对象,x 是我们感兴趣访问的变量。

classB是ClassA中的一个变量。

classC是ClassB中的一个变量。

x是ClassC中的变量。

但是,当我尝试重新创建类似的测试场景时,我收到 NullPointerException 错误。

Mã số

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中有类似的东西吗?

感谢对此的任何帮助。

Cảm ơn.

1 Câu trả lời

如果这是确切的代码(由于缺少 getClassA() 方法而无法提供该代码),则无需实例化 ClassB hoặc C,因此需要 NPE.

关于java - 组合:如何使用点表示法访问非静态变量而不出现空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39011528/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com