一直放这些空检查真的有意义吗?例如:
if(object == null){
log.error("...")
throw new SomeRuntimeException("");
} else{
object.someMethod();
}
实际上,上面的代码段相当于语句object.somemethod();
如果object
的值为null,则在这两种情况下都会引发异常(后者为NullpointerException)。
在像你这样的情况下,支票没有好处。您将一个RuntimeException替换为另一个RuntimeException,而另一个RuntimeException没有额外的信息或值(对于不熟悉代码的人来说可能会少一点,因为每个人都知道什么是NPE,也不是每个人都知道您的SomeRuntimeException是什么)。
我认为明确检查的主要两次是:
修改为的变量必须在声明或执行构造函数时初始化。 我在系统类文件中查找,发现对象是在方法中初始化的,什么时候调用这个方法?
超文本传输协议GET方法的响应如下所示: 在前端,我想检查属性是否为空。我尝试过这种方法,但不起作用
假设我在程序中有一段代码: 有人建议我在调用消息之前检查消息的空值。getUserId()。 检查null有两种方法:第一种: 第二种方式: 我的问题是: 哪种方式对null检查更好?返回还是抛出异常? 为什么我们在这里需要空检查?如果我们不这样做,那么无论如何都会抛出。
这让我很费解。我正在试图理解如何解决Java无法识别我的“settitle”方法存在于第一个“song”之后的问题。这是一个音乐应用程序。它还有另外两个类。我们将非常感谢所有的帮助。 编辑:添加歌曲类。
通常我更喜欢空检查。但是在当前的场景中,我知道大多数时候我的if条件会过去,并且很少有object可能为空的合法场景。 而且,负载很大(大约500万次/小时) 现在我试着从性能的角度去寻找哪种方法更好。在java中已经检查了try/catch vs null check,但我的情况是唯一的。 更新: 胜利者为空支票。在try/catch中,内部JVM将执行null检查并抛出NPE,此外,JVM中的
问题内容: 每当我学习垃圾收集器时,都会听到术语“对象图”。到底是什么意思? 问题答案: 对象具有对其他对象的引用,这些对象又可以具有对更多对象(包括起始对象)的引用。这将创建对象图,在可及性分析中很有用。例如,如果起始对象是可到达的(例如,它在线程的本地堆栈中),则图形中的所有对象都是可到达的,并且确切的垃圾收集器无法收集任何这些对象。同样,如果我们创建所有可到达对象的列表,则从一组活动对象(根