gpt4 book ai didi

java - 为什么对静态变量的非静态引用是可编译的?

转载 作者:行者123 更新时间:2023-12-01 23:47:20 25 4
gpt4 key购买 nike

假设我有以下代码:

public class Everything{
public static int answer = 42;

public int getAnswer(){
return this.answer;
}
}

从技术上讲,this.answer实际上并不存在,但编译器会发出警告让我们离开。为什么我们没有得到编译错误呢?

最佳答案

this 是对 Everything 实例的有效引用。因此,它是对 Everything 类的有效引用,因此也是访问该类的任何静态成员和/或方法的有效方法。

你甚至可以这样做:

Everything nothing = null;
nothing.answer; // Does not throw an NPE!!

通常,这不是很好的做法...例如,IDEA 会警告您“通过实例引用访问静态成员”。

关于java - 为什么对静态变量的非静态引用是可编译的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16824880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com