【问题标题】:JAVA main with args [duplicate]带有args的JAVA主[重复]
【发布时间】:2017-01-10 07:09:40
【问题描述】:
public class Wells {
  String str[] = null;

  static public void main(String args[]) {

    Wells objWells = new Wells();
    System.out.println(args.length);// we will NOT  get null pointer exception WHY ?

    System.out.println(objWells.str.length); // we will get null pointer exception
  }

}

【问题讨论】:

  • 新 Wells 的 str[] 为空,因此当您尝试获取其长度时会得到 NPE。对于“为什么args not null”部分,请参阅stackoverflow.com/questions/9605532/…
  • 问题是,你为什么期望str 不是null。至于args,绝对不会默认的

标签: java main


【解决方案1】:

在 main 方法中,参数永远不会为空。

在您的对象中,您将其定义为 null,因此它将为 null

【讨论】:

  • 是的。但面试官问为什么 main 方法中的参数永远不会为空。
  • 好吧,我不确定,但 AFAIK args 数组是由 JVM 初始化的,所以它总是被初始化并且永远不会为空。如果你需要检查它的空性,你应该检查 args.length == 0
猜你喜欢
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 2015-09-06
相关资源
最近更新 更多