【问题标题】:NullPointer when using Log class使用 Log 类时的 NullPointer
【发布时间】:2019-10-25 08:18:45
【问题描述】:

我的印象是,与使用 View 相关的类(如 Toast)相比,Log 类应该能够在对象或变量为 null 时显示 null,而不是使应用程序崩溃。

谁能解释一下为什么会这样?

我不知道为什么我必须在执行简单的日志记录之前编写一个空检查器。

enter public void onClick(final View view) {
    busy.set(View.VISIBLE);
    final String email = this.email.get();
    final String password = this.password.get();

    if(!isValidEmail(email)) {
        Snackbar.make(view,"email is invalid" , Snackbar.LENGTH_SHORT).show();
        busy.set(View.GONE);
        return;
    }
    Log.d("PASSWORD", password);

上面是一个简单的代码sn-p,在这种情况下,在登录过程中,当密码为空时,应用程序崩溃了。在这种情况下,我必须在实际记录之前放置一个 if 语句来检查 null。

【问题讨论】:

  • 为什么会这样?这是一个没人能正确回答的问题。他们可能已经检查空值并自行处理,但他们决定不这样做,这就是现在的现实。
  • 请在问题中也包含您的代码
  • 第二种形式的 Log.d 确实允许 @Nullable 用于第二个参数:Log.d("PASSWORD",password,null) 其中password 可以为空。第三个参数是一个可选的Throwable 对象,它也是@Nullable。

标签: android logging


【解决方案1】:

由于您的Log.d() 格式错误,您将null 值传递给日志消息。正确的格式是:

Log.d("PASSWORD", "LOG MESSAGE" + password);

【讨论】:

    猜你喜欢
    • 2014-05-12
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多