Questions tagged «nullpointerexception»

当需要对象时,应用程序尝试使用null时引发的Java异常。

12
如果equals(null)代替抛出NullPointerException是一个坏主意吗?
合同equals与问候null,如下: 对于任何非null的参考值x,x.equals(null)应使用return false。 这是很特殊的,因为如果o1 != null和o2 == null,那么我们有: o1.equals(o2) // returns false o2.equals(o1) // throws NullPointerException 这o2.equals(o1) throws NullPointerException是一件好事,因为它使我们意识到程序员的错误。但是,如果由于各种原因我们只是将其切换到o1.equals(o2),则该错误将不会被捕获,而这只会“静默失败”。 所以问题是: 为什么o1.equals(o2)不应该return false抛出一个好主意NullPointerException呢? 如果我们尽可能重写合同以改为anyObject.equals(null)始终抛出,那将是一个坏主意NullPointerException吗? 与比较 Comparable 相比之下,Comparable合同是这样说的: 请注意,null不是任何类的实例,并e.compareTo(null)应抛出NullPointerException,即使e.equals(null)回报false。 如果NullPointerException适合compareTo,为什么不适合equals呢? 相关问题 关于null的可比合同和比较合同 一个纯粹的语义论点 这些是Object.equals(Object obj)文档中的实际词语: 指示其他某个对象是否“等于”该对象。 什么是物体? JLS 4.3.1对象 一个对象是一个类的实例或阵列。 引用值(通常只是引用)是指向这些对象的指针,是一个特殊的null引用,它不引用任何对象。 从这个角度来说,我的论点非常简单。 equals测试其他对象是否“等于”this null参考没有给出其他测试对象 因此,equals(null)应该扔NullPointerException

8
您如何判断Selenium for Java中是否选中了一个复选框?
我正在Java中使用Selenium来测试Webapp中复选框的检查。这是代码: private boolean isChecked; private WebElement e; 我声明e并将其分配给复选框所在的区域。 isChecked = e.findElement(By.tagName("input")).getAttribute("checked").equals("true"); 奇怪的是getAttribute("checked")回报null,因此NullPointerException 在复选框的HTML中,没有checked显示属性。但是,不是所有input元素都有一个checked = "true",这样的代码应该工作吗?

5
java.lang.NullPointerException:缺少ID为的必需视图:
Android Studio 3.6 在app / build.gradle中: android { viewBinding.enabled = true 这是我的xml: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/bluetoothBottonMainContainer" android:layout_width="0dp" android:layout_height="104dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <View android:id="@+id/viewPointNotSelect" android:layout_width="16dp" android:layout_height="16dp" android:background="@drawable/circle_transparent" app:layout_constraintBottom_toBottomOf="@+id/separator" app:layout_constraintEnd_toStartOf="@+id/separator" app:layout_constraintTop_toTopOf="parent" /> 和另一个xml,这是不言而喻的。xml: <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/bottonContainer" android:layout_width="0dp" android:layout_height="104dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"> <include android:id="@+id/qrBottonContainer" layout="@layout/qr_bottom_container" android:layout_width="0dp" android:layout_height="wrap_content" …

1
赋值时,Java三元行为异常。Java在幕后为此做了什么?
几天前,我遇到了一个令人着迷的场景,我找不到任何有关Java如何或为什么使以下情况发生的文档。(此代码段只是该错误的简化形式。) @Test public void test() { boolean bool = false; Integer intVal = Integer.valueOf(5); Long longVal = null; Long result = bool ? intVal : longVal; System.out.println(" > " + result); } 在上面的代码段中: 如果bool = true,则得到的值为'5'; 但是如果bool = false,则在尝试评估三元运算时会得到空指针异常。不是打印语句。 为了解决这个问题,我只是将“结果”更改为 Long result = bool ? Long.valueOf(intVal) : longVal; 这样做,将给出我所需的预期行为: 如果bool …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.