我目前正在用Java FX制作一个基本的TextEditor,但我遇到了一些困难。在使用编辑器时,我正在尝试合并 MVC 开发风格并在模型中使用任何类型的 Document 对象,尽管当我尝试保存内容区域时,当我尝试在文档中设置任何变量时,我得到一个 NullPointException当文档初始化为 null。它工作正常,设置为新文档将空参数...
任何关于其原因的信息将不胜感激!
编辑:
很抱歉模棱两可,我的意思是初始化我正在尝试为其设置变量的对象。我将其初始化为简单的空:
Document workingDocument = null
当我将其更改为:
Document workingDocument = new Document(null, null);
我了解创建新文档在内存方面的作用,但了解简单地将其初始化为 null 的作用......
不能对空值进行操作。唯一可用于空值(我的头顶)的操作是
- 空检查 -
if(document==null)
- 转让 -
document=null
例如,如果您尝试对null
值调用某种方法,则会抛出NullPointerException
。
Document doc=new Document();
doc.toString(); // works just fine
doc=null;
doc.toString(); throws NPE.
你应该熟悉OOP的概念,因为空值在这里被广泛使用。您可以在此处查看相关主题 什么是空指针异常,我该如何解决它?
不是 100% 确定你的意思,但是如果没有对象 - 你不能在其中设置任何变量 - 因为它不存在。因此,如果将其初始化为 null,则为空 - 即什么都没有。
如果已实例化对象,则可以设置其成员变量(即使其中的变量为 null),因为该对象确实存在。
空为空。因此,即使变量属于某种类型,如果将其实例化为该变量,它也会指向 null。
Shoe myShoe; // This is a shoe typ variable
myShoe = new Shoe(); // Now it's pointing to a new shoe object
myShoe = null; // Now it's pointing to null, meaning there is no shoe object there anymore.