【问题标题】:Null pointer dereference in netbeans meaningnetbeans含义中的空指针取消引用
【发布时间】:2014-09-30 19:24:48
【问题描述】:

Netbeans 在我的代码中报告此方法中的空指针取消引用。我不是代码向导 我需要找出这意味着什么,它如何影响正在运行的代码以及它可能导致的错误。

    public ArrayList<String> getKompetensdomanerBeskrivning(){
    ArrayList<String> kompetensdomanerBeskrivning = null;
    for(Kompetensdoman kompdoman : kompetensdomaner){
        kompetensdomanerBeskrivning.add(kompdoman.getBeskrivning());
    }
    return kompetensdomanerBeskrivning;
}

【问题讨论】:

  • 所以初始化kompetensdomanerBeskrivning...
  • 对不起,我错了,已编辑。
  • @sᴜʀᴇsʜᴀᴛᴛᴀ 是的,我只是看错了前两行...写完就明白了。
  • @matan7890 没问题 :)。它发生了。

标签: java pointers netbeans null dereference


【解决方案1】:
 ArrayList<String> kompetensdomanerBeskrivning = null;

您已将其初始化为null。这就是警告的原因。使用当前代码,如果您运行代码,您会遇到NullPointerException

改成

   ArrayList<String> kompetensdomanerBeskrivning = new ArrayList<String>();

      ArrayList<String> kompetensdomanerBeskrivning = null;

               //some code here

      ArrayList<String> kompetensdomanerBeskrivning =  new ArrayList<String>();//no warn

这意味着然后,当您要使用指向仍为 null 的实例时,您会看到该警告。

【讨论】:

  • 所以当一个对象初始化为 null 时,它每次都会报告?
  • @XenoLyse 不,当对象为空时,表示它没有被初始化。当对象未初始化时,意味着您无法引用它,因为它并不真正“存在”。
  • @XenoLyse 否。最初您可以将其初始化为 null,但稍后您可以使用实际的 Class 重新初始化它。
  • @sᴜʀᴇsʜᴀᴛᴛᴀ 为了准确起见,当你将一个对象初始化为 null 时,这意味着只有它的引用被初始化,而不是对象本身。所以它并不是真正的“重新初始化”。
猜你喜欢
  • 2013-02-20
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多