当前位置: 首页 > 知识库问答 >
问题:

null安全静态方法中null输入的java.lang.NullPointerException

宇文俊明
2023-03-14
@Test
fun isEmpty_null_true(){
    Assert.assertEquals(StringUtils.isEmpty(null),true)
}

public static boolean isEmpty(@Nullable String value) {
    return (TextUtils.isEmpty(value) || value.trim().isEmpty());
}

除上述一种试验方法外,其他试验方法均有效并通过。我得到了java.lang.NullPointerException。上面还提到了stringutils.isempty()的实现。StringUtils类是用Java编写的,而测试用例文件是用Kotlin编写的。

共有1个答案

汪鸿波
2023-03-14

问题出在这个stringutils.isempty()方法本身,因为有时textutils.isempty(null)返回false,此时您将value作为null传递null,然后对导致java.lang.nullpointerexceptionnullpointerexceptionnullpointerexception值调用trim()方法

public static boolean isEmpty(@Nullable String value) {
        return (TextUtils.isEmpty(value) || (value != null && value.trim().isEmpty()));
    }

 类似资料:
  • 如果你正在使用Java 7工作的话,null安全是Kotlin中最令人感兴趣的特性之一了。但是就如你在本书中看到的,它好像不存在一样,一直到上一章我们几乎都不需要去担心它。 通过我们自己创造的亿万美金的错误对null的思考,我们有时候的确需要去定义一个变量包不包含一个值。在Java中尽管注解和IDE在这方面帮了我们很多,但是我们仍然可以这么做: Forecast forecast = null;

  • 好了,前面的章节解释了使用Kotlin代码完美地工作。但是与普通的Java库和Android SDK会发生什么呢?在Java中,所有对象可以被定义为null。所以我们不得不处理大量潜在的在现实中不可能是null的null变量。这意味着我们的代码最后可能会有几百个!!操作符,这绝对不是一个好的主意。 当我们去处理Android SDK时,你可能看见所有Java方法的参数被标记为单个的!。比如,Jav

  • 大部分现代语言使用某些方法去解决了这个问题,Kotlin的方法跟别的相似的语言比是相当另类和不同的。但是黄金准则还是一样:如果变量是可以是null,编译器强制我们去用某种方式去处理。 指定一个变量是可null是通过在类型的最后增加一个问号。因为在Kotlin中一切都是对象(甚至是Java中原始数据类型),一切都是可null的。所以,当然我们可以有一个可null的integer: val a: In

  • 问题内容: 我听说过新的Dart空安全语言功能(NNBD),目前称为“ “不可空”实验 ”。 默认情况下 应该引入 non- nullable 。 功能规范可在此处找到,语言GitHub问题可在此处找到。 它是如何工作的,我可以在哪里尝试? 问题答案: 当前可以在nullsafety.dartpad.dev中找到null安全/不可为空(默认情况下)的简短NNBD功能。 请记住,您可以在此处阅读完整

  • 问题内容: 在我的React组件中,我有一个文件输入: 我的是: 设置状态的第一种方法失败,并显示错误: React还给出以下警告: 但是设置状态的最后两种方法没有给出错误或警告。为什么会这样呢? 问题答案: 该函数在异步上下文中执行。 到状态更新时,引用可能会也可能不会消失。 可以像示例中那样“记住”该值。

  • 所以我想对值中包含的值进行空安全检查。 所以我有三个相互包含的对象: Person有一个衣服对象,这个衣服对象有一个国家对象,这个国家对象有一个资本 所以一个人可能没有衣服,所以像这样的支票会抛出一个空指针: 如果路径上的任何对象为空,我如何使这样的语句返回false? 我也不想这样做。(如果可能的话,Java-8中的一行。