Java 无法对基元类型void调用格式(日期)
在jasper报告中,我尝试了以下内容Java 无法对基元类型void调用格式(日期),java,Java,在jasper报告中,我尝试了以下内容 new SimpleDateFormat(“dd.MM.yyyy HH:MM”).setTimeZone(TimeZone.getTimeZone(“UTC”))格式(新日期(1483337940000L)) 在文本字段表达式中 但是我得到了错误 无法对基元类型void调用格式(日期) 它与java中的以下代码不一样吗 1483337940000L is 02.01.2107 07:19 SimpleDateFormat sdf = new Simple
new SimpleDateFormat(“dd.MM.yyyy HH:MM”).setTimeZone(TimeZone.getTimeZone(“UTC”))格式(新日期(1483337940000L))代码>
在文本字段表达式中
但是我得到了错误
无法对基元类型void调用格式(日期)
它与java中的以下代码不一样吗
1483337940000L is 02.01.2107 07:19
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String test = sdf.format(new Date(1483337940000L)); // Here I am getting 06:19
String test2 = new SimpleDateFormat("dd.MM.yyyy HH:mm").setTimeZone(TimeZone.getTimeZone("UTC")).format( new Date(1483337940000L)); // Here I am getting the error Cannot invoke format(Date) on the primitive type void
该方法来自DateFormat类;并且不返回值;因为它是无效的
当你写作的时候
sdf.setTimeZone(TimeZone.getTimeZone("UTC")).format(new Date(1483337940000L));
您尝试对setTimeZone()的结果调用format()
但由于这种方法没有结果;那一定会失败
这里真正需要注意的是:不要假设一个方法在做什么。是的,一些API是通过返回调用方法的对象来允许“流畅调用”的;但不是全部!因此,当有疑问时:检查javadoc。首先。该方法来自DateFormat类;并且不返回值;因为它是无效的
当你写作的时候
sdf.setTimeZone(TimeZone.getTimeZone("UTC")).format(new Date(1483337940000L));
您尝试对setTimeZone()的结果调用format()
但由于这种方法没有结果;那一定会失败
这里真正需要注意的是:不要假设一个方法在做什么。是的,一些API是通过返回调用方法的对象来允许“流畅调用”的;但不是全部!因此,当有疑问时:检查javadoc。首先。setTimeZone不返回值。这是一个无效的方法。只有当每个操作都定义为返回调用它的对象时,惯用语obj.operation1().operation2().operation3()
才有效。这不是该操作的定义方式,因此不能使用“链接命令”的习惯用法;所以请考虑在某个时候接受;setTimeZone不返回值。这是一个无效的方法。只有当每个操作都定义为返回调用它的对象时,惯用语obj.operation1().operation2().operation3()
才有效。这不是该操作的定义方式,因此不能使用“链接命令”的习惯用法;所以请考虑在某个时候接受;