KNU*_*KNU 10 java static static-members nullpointerexception
我遇到了以下代码:
public class TradingSystem {
private static String category = "electronic trading system";
public static void main(String[] args) {
TradingSystem system = null;
System.out.println(system.category);
}
Run Code Online (Sandbox Code Playgroud)
输出:电子交易系统
我很惊讶没有找到NullPointerException!
Q1.它为什么不抛出NullPointerException?
Q2.或者在编译时,由于类别的声明已经static使它替换系统(即对象引用),TradingSystem并且因此基本上TradingSystem.category被称为?
Java允许static使用实例语法访问类变量(即1).换句话说,编译器允许您编写system.category,但它将其解析为TradingSystem.category,它独立于访问它的实例.
这就是你没有得到的原因NullPointerException.但是,这种语法不易读取和混淆.这就是为什么你应该得到一个警告和建议,TradingSystem.category而不是使用system.category.
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |