我知道我可以使用这些技术找出 Java 中的变量是否为空:
- 如果
(var==null)
-> 工作量太大 try { ... } catch (NullPointerException e) { ...}
-> 它告诉我是哪一行抛出异常- 使用调试器 -> 手动,太慢了
考虑这行代码:
if (this.superSL.items.get(name).getSource().compareTo(VIsualShoppingList.Source_EXTRA)==0) {
我想知道是否有一种通用的方法可以以编程方式找出在某个代码区域中抛出 NullPointerException 的变量(不仅仅是行)。在示例中,知道
最佳答案
即使不涉及变量也可能导致空指针异常:
throw new NullPointerException();
我不得不说,没有通用的方法来确定特定变量的空指针异常。
最好的办法是在每一行中放置尽可能少的语句,以便清楚导致空指针异常的原因。考虑将问题中的代码重构为如下所示:
List items = this.superSL.items;
String name = items.get(name);
String source = name.getSource();
if (source.compareTo(VIsualShoppingList.Source_EXTRA) == 0) {
// ...
}
可以肯定的是,代码行数更多。但它也更具可读性和可维护性。
关于java - 找出以编程方式抛出 NullPointerException 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667908/