jdk8 获取上一个月时间_JDK 10:FutureTask获取一个toString()

jdk8 获取上一个月时间

我已经很长时间了,对于大多数具有独特属性的Java类,开发人员应该花些时间重写Object.toString() ,即使它仅是由IDE生成的实现或使用诸如Apache之类的库类来实现Commons Lang的ToStringBuilder 。 如果要手动实现toString ,则重载的Objects.toString() 方法也比以往更容易实现。 J2SE 5 引入的JDK类FutureTask最终在JDK 10中获得了自己的toString()实现 。

理查德·尼科尔斯 ( Richard Nichols )在2012年发表的文章“ 如何获取Java执行程序的运行任务… ”突出显示了FutureTask类上toString()方法的省略。 他写了:


该API不包含任何方式收集有关内部事件的信息,这似乎很奇怪。
执行器 ,甚至没有
toString()实现,用于包装类似的类
FutureTask会冒泡您
可运行
可调用
toString()方法。

Nichols的帖子是在他的观察的背景下得出的:“在运行时实际上很难公开……Java的Executor在任何时间点实际上正在做什么。”

发行JDK-8186326 [“使“任务”对象的toString()方法更有用”]讨论了如何将FutureTask toString()与CompletableFuture的对齐,该问题指出“已经有一个有用的toString方法 ,给出了当前状态。” 2017年末的一个电子邮件线程记录了有关在FutureTask和其他“ juc中的任务类”( java.util.concurrent )中添加toString()的讨论。

Javadoc注释了新的FutureTask.toString()方法状态,“默认实现返回一个标识此FutureTask的字符串及其完成状态。 括号中的状态包含字符串“ Completed Normally ”,“ Completed Exceptionally ”,“ Cancelled ”或“ Not completed ”之一。” FutureTasktoString()的这四个潜在完成状态中的三个也可能作为CompletableFuturetoString()一部分来编写[“ Cancelled ”是例外)。

在JDK 10中,将toString()的特定实现添加到FutureTask类中只是一小部分。 但是,对于开发人员“如诊断JDK-8186326的“问题”语句中所述,在诊断应用程序故障时盯着“任务”对象(Runnables,Callables,Future)的toString的输出”,此“少量”添加可能是非常欢迎。

翻译自: https://www.javacodegeeks.com/2018/02/jdk-10-futuretask-gets-tostring.html

jdk8 获取上一个月时间

你可能感兴趣的:(jdk8 获取上一个月时间_JDK 10:FutureTask获取一个toString())