java - assert 与 if(var != null) 哪种方式更好或正确?

标签 java android

在我的应用程序中,我想在这样的 finally 语句中关闭我的光标:

Cursor cursor = null;
try {
    // some code
} finally {
     cursor.close();
}

我的 IDE 突出显示 cursor.close(); 并告诉:

This method can produce nullPointerException

并建议纠正它的方法(我使用的是 intelij idea):
第一:

assert cursor != null;
cursor.close();

第二:

if (cursor != null) {
   cursor.close();
} 

我想知道它们之间有什么区别,哪种方法更好?

最佳答案

Java 断言只有在 -ea(启用断言)作为参数传递给 JVM 时才会执行。如果启用断言并且断言的 boolean 表达式计算为 false,将抛出 AssertionError。所以断言实际上只是用作调试功能。

你应该明确地使用 if 语法。

请注意还有语法 assert booleanFlag : message; 如果booleanFlag 为 false

关于java - assert 与 if(var != null) 哪种方式更好或正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28544382/

相关文章:

java - 在运行时创建的引用对象

Android 特拉维斯 CI 错误 : failed to find target with hash string 'android-23' in:/usr/local/android-sdk

android - adb 启动服务器失败

java - 使用分类器依赖没有 pom.xml 的 jar 会导致主要 Artifact 依赖

java - jboss url 形式的 servlet

java - 如何使用 DOM/SAX 或 java 中的任何解析器解析 bcompare xml 报告

android - 如何制作一个应用程序来收集我们设备中已有的一些应用程序。

java - Android,如何实现 ImageButton 的圆角,然后以编程方式更改颜色?

android - 简单的一个 : does ACTION_DISCOVERY_FINISHED return something like a "no devices found"?

java - 这段逻辑是怎么回事? Java,括号