NullPointerException:尝试在空对象引用上调用虚拟方法'int java.lang.String.length()'

gojic:

现在我知道什么是null NullPointerException 什么是NullPointerException,如何解决?但不明白为什么我要这样做。

我正在从这个问题中更改示例在android中更改日期字符串格式

我从服务器获取日期作为字符串。"2020-03-11T00:00:00",基本上是用户续签合同的日期。

 @SerializedName("renewalDate")
private String date;

在我的getter方法中,我正在这样做:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date newDate = new Date();
    try {
        newDate = format.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    format = new SimpleDateFormat("dd-MMM-yyyy");
    return format.format(newDate); }

现在,我的String日期不是空的,因为日志从服务器正确显示了日期,这就是为什么我如此困惑为什么我得到NullPointerException的原因。

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
    at java.text.SimpleDateFormat.parseInternal(SimpleDateFormat.java:1739)
    at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1726)
    at java.text.DateFormat.parse(DateFormat.java:360)
    at com.nswd.successplan.model.RealEsteteModel.getDate(RealEsteteModel.java:147)
    at com.nswd.successplan.databinding.ItemRealEsteteAccBindingImpl.executeBindings(ItemRealEsteteAccBindingImpl.java:198)
    at androidx.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:473)
    at androidx.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:445)
    at com.nswd.successplan.Adapters.RealEsteteAdapter$RealEsteteHolder.binding(RealEsteteAdapter.java:79)
    at com.nswd.successplan.Adapters.RealEsteteAdapter.onBindViewHolder(RealEsteteAdapter.java:46)
    at com.nswd.successplan.Adapters.RealEsteteAdapter.onBindViewHolder(RealEsteteAdapter.java:25)
Arvind Kumar Avinash:

对于日期时间字符串2020-03-11T00:00:00,您需要替换

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

注意: java.util.Date不代表日期/时间对象。它只是表示否。距纪元的毫秒数1970-01-01T00:00:00Z它没有任何时区或时区偏移信息。在打印时,Java将打印通过应用JVM的时区获得的字符串。我建议您从过时且容易出错的java.util日期时间API SimpleDateFormat切换到现代 java.time日期时间API和相应的格式API(包java.time.format)。Trail:Date Time了解更多有关现代日期时间API的信息如果您的Android API级别仍不符合Java8,请检查如何在Android Project中使用ThreeTenABP可通过desugaring获得的Java 8+ API

下表概述了现代日期时间类,您可以根据需要从中选择类:在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NullPointerException:尝试在空对象引用上调用虚拟方法'int java.lang.String.length()'

NullPointerException:尝试在空对象引用上调用虚拟方法'int java.lang.String.length()'

JSONArray 异常:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int java.lang.String.length()”

尝试在空对象引用上调用虚拟方法'int java.lang.String.length()'。无效的API地址崩溃

安卓。尝试在空对象引用上调用虚拟方法'int java.lang.String.length()'

尝试在执行 Swiperrefresh Android 时在 Volley 上的空对象引用上调用虚拟方法“int java.lang.String.length()”

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int com.xxHelper.SharedPref.GetInt(java.lang.String)”

尝试在空对象引用上调用虚拟方法'android.content.Context.getSharedPreferences(java.lang.String,int)'

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'int java.lang.Integer.intValue()'

NullPointerException:尝试在空对象引用上调用虚拟方法'boolean java.lang.String.equalsIgnoreCase(java.lang.String)'

com.android.volley.VolleyError:java.lang.NullPointerException:尝试在对象引用上调用虚拟方法“ java.lang.String.length()”

原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'boolean java.lang.String.isEmpty()'

java.lang.NullPointerException: 尝试在空对象引用上调用虚拟方法 (java.lang.String)'

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int java.io.InputStream.read(byte[])”

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.CardView.setVisibility(int)”

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'int android.view.View.getImportantForAccessibility()'

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'int android.view.ViewGroup.getPaddingLeft()'

NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.Object android.util.SparseArray.get(int)'

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ void android.widget.ImageView.setImageResource(int)”

尝试在空对象引用上调用虚拟方法“int java.lang.Integer.intValue()”

尝试在空对象引用上调用虚拟方法“getSystemService(java.lang.String)”

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.String.trim()”

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.Object.toString()”

Android:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ java.lang.String java.lang.Object.toString()”

尝试在空对象引用上调用虚拟方法'java.lang.String java.lang.String.toUpperCase()'

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ android.view.View android.app.Activity.findViewById(int)”

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ android.view.View .MainActivity.findViewById(int)”

由java.lang.NullPointerException引起:尝试在空对象引用上调用虚拟方法'int android.graphics.Bitmap.getWidth()'

尝试在空对象引用上调用虚拟方法'boolean java.lang.String.contains(java.lang.CharSequence)'