JDK 8的启发性Javadoc

标准JDK 8 API文档的一个不错的功能之一就是能够查看所有或不同类别的方法,正如我在博客文章JDK 8 Javadoc Tweaked For Methods Listings中所讨论的那样。 尽管这种分类既方便又有用,但是与JDK 8中许多新类和程序包相关联的文本注释无疑更有用,尤其是当我们中的许多人开始采用JDK 8时。我看一些非常有用的示例这篇文章中的JDK 8 API文档。 在快速浏览JDK 8 Javadoc文档的过程中,对JDK 8完全陌生的任何人都必须学习有关JDK 8库的知识。

熟悉的String类文档中提供了JDK 8 API文档有用性的良好示例。 该类具有两个新的重载静态方法,即join(CharSequence,CharSequence…)和join(CharSequence定界符,Iterable元素) 。 Javadoc对这两个新方法的注释不仅解释了方法的行为,而且还通过演示使用方法的代码来说明它们。 这类似于我一直发现对String.substring(int,int)方法有帮助的Javadoc注释。

全新的StringJoiner类在类级Javadoc注释中包含其用法的代码示例。 其中一个代码示例似乎旨在简化“传统Java开发”,而第二个示例则应用了lambda表达式和流的功能 。

代码示例也广泛用于其他新类(至JDK 8)的Javadoc文档中,尤其是在java.util.streams包中。 java.util.stream.Collectors类的类级Javadoc文档提供了Collectors的7种潜在用途(例如累积和分组)的代码示例。 Stream接口在接口上提供了有用的JDK 8文档的示例。 有关应用Stream接口的文本详细信息,并附有一个简单的代码示例,该示例演示了“使用Stream和IntStream的聚合操作”。 java.util.stream包本身具有有关Streams的出色描述文本 ,其中包括一个使用Stream的简单示例,并对该示例进行了详细讨论。 java.util.stream的软件包文档进一步讨论了使用Streams的几个不同方面,例如流操作和管道,并行性,副作用和归约。

就像在使用JDK 8 lambda表达式时理解Streams很重要一样,在使用lambda表达式时理解功能接口也很有用,并且java.util.function包级描述提供了很好的概述。

带有启发性代码示例的基于Java的JDK 8文档的另一个很好的示例是Calendar.Builder的文档,我在JDK 8的Calendar.Builder中介绍了该类。

到目前为止,我所讨论的大多数基于JDK 8 Javadoc的文档都提供了代码示例,这些示例演示了所描述的包,类或接口的使用。 一些新的JDK API文档使用代码通过显示以前需要编写但被新功能替换的代码来演示新的API功能。 众所周知的Java Map接口中有很好的例子。 Java Map界面在JDK 8中指定了几个新方法,并且这些新JDK 8方法中的许多都包括Javadoc文档,该文档指示在JDK 8之前完成与新添加的方法相同的操作所需的代码。 例如,方法computeIfAbsent , computeIfPresent , forEach , getOrDefault和putIfAbsent方法都具有注释,这些注释提供了代码,以证明“默认实现等效”。 尽管这可能解释了Map实现的默认行为,但对于理解这些方法模拟或替换的JDK 8之前的代码的类型也很有用。

JDK 8引入了一个全新的Date / Time API,并且java.time软件包对API进行了很好的软件包级概述 。 这个全新软件包中的构造具有单独的级别注释,这些注释对于学习此API很有用。 示例包括Clock , Instant , LocalDateTime , Period和ZonedDateTime 。 封装级文档可以帮助澄清之间的关系LOCALDATE的 , LocalDateTime , 本地时间 , ZonedDateTime和即时 。

JDK 8 Javadoc不仅针对标准JDK API进行了更改。 JDK 8 对javadoc工具进行了一些增强,这将影响开发人员自己的Javadoc注释和代码。 注意-Xdoclint:none选项 (在Stephen Colebourne的博客文章“在JDK 8 Javadoc中关闭doclint”中提到)也很重要,可以防止破坏不符合“ W3C HTML 4.01 HTML”的Javadoc。 关于Javadoc Java SE 8增强功能的最后一个项目符号指出,此Javadoc HTML一致性合规性“在Javac中也可用,尽管默认情况下未启用该功能。” 该项目符号告诉我们,可以通过运行javadoc -X来了解有关-Xdoclint:none标志的更多信息。

结论

我有时会听到,当代码说明自己时,永远不需要注释。 我相信一定程度上是对的,但是JDK 8引入的有关程序包,类和接口及其方法的有用Javadoc注释的存在,将使JDK 8的采用比阅读这些构造的每个代码清单都快得多。将。 它强化了我的观点,即我们通常不需要对执行某些操作的特定代码行进行注释,但是大多数情况下确实需要对接口和协定进行注释。 在我的理想世界中,代码编写得如此好,以至于唯一必要的注释就是Javadoc样式注释( /** */ ),而我们只需要很少的///* */样式注释。 在可读性和可理解性方面,JDK 8延续了最近的JDK主要修订版中出现的趋势,该修订版对Javadoc注释进行了改进。

翻译自: https://www.javacodegeeks.com/2014/03/the-illuminating-javadoc-of-jdk-8.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我用Mono(1)

我在Mono 0.1就开始关注和试用Mono了。我印象最深的一次是,我在FreeBSD里编译好了Mono(FreeBSD装在VPC里)。我用了同样的算法写了一个CS文件和JAVA文件。然后在虚拟机的FreeBSD的Mono下编译运行,把Java文件在真实机器的Windows XP…

setTimeout(fn,0)

我们都知道setTimeout是一个延迟执行的函数 console.log(1); setTimeout(function(){console.log(2);},1000); console.log(3); 会得到1,3,2 但是 setTimeout(function(){console.log(1);}, 0); console.log(2); 你知道这段代码会执行什么样的效果吗 正…

Java基本数据类型的传值

传递值: 说明:标题其实说法是错误的。Java中只有值传递,没有引用传递。 ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x x *2; } ... ... //调用该函数 int num 5; System.out.println(num); change…

红楼梦人物分析系统c语言,Gephi分析红楼梦

前言上一周赶了好久的社会网络计算,貌似是第四周还是第五周的时候,那时候我们就把题目定下来了吧,然后一直拖着没有做。其中的原因多种多样 ,其实也可以说没有什么原因,就是不想做而已,然后就假装忘记23333…

二、MyBatis-HelloWorld

环境准备 1.创建数据库表 create table tbl_employee (id int(11) primary key AUTO_INCREMENT comment "ID",last_name varchar(20) default null comment "姓名",email varchar(20) default null comment "邮件",gender varchar(1) default nu…

洪水同频率放大的方法_我们应该怎么选择放大器配件?

在市面上,手机信号放大器高达百种型号与品牌,每种手机信号放大器所需的配件也不相同,我们需要选择合适的配件,才能让手机信号放大器更稳定的运行。下面佛山红岸谷通讯教大家怎么选适合自己的手机信号放大器配件。主要有以下几点。…

Java代码风格:最终决定

所谓的最不起眼的事情如何导致争议性的讨论,有时甚至导致激烈的辩论激烈,这不是很有趣吗? 例如,我目睹了几次场合,如何使用关键字final引发了非常激烈的争论。 对于一个外部观察者来说,这看起来似乎是对邪恶…

有感软件安装称呼的变化

上学的时候,揣着一盒磁盘到处跑“拷贝”新软件(现在我还有几张5寸低密和高密盘作纪念)。这盒磁盘也成了我的工具箱,用的时候拷上,不用的时候“删除”,COPY、DEL以及DELTREE是我经常用到的命令。从来不用担心…

手机端调试console.log,直接引入一个js文件

http://files.cnblogs.com/files/lwwen/mConsole.js 这是我写的一个原生js文件 直接引入即可&#xff0c;可以把html上面的需要打印的东西打印出来 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><meta name"Viewport"…

独木舟贪心算法c语言,算法:(贪心算法)-独木舟问题

独木舟上的旅行Description进行一次独木舟的旅行活动&#xff0c;独木舟可以在港口租到&#xff0c;并且之间没有区别。一条独木舟最多只能乘坐两个人&#xff0c;且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销&#xff0c;所以要找出可以安置所有…

2019.01.01 bzoj3625:小朋友和二叉树(生成函数+多项式求逆+多项式开方)

传送门codeforces传送门codeforces传送门codeforces传送门 生成函数好题。 卡场差评至今未过 题意简述&#xff1a;nnn个点的二叉树&#xff0c;每个点的权值KaTeX parse error: Expected EOF, got \inC at position 4: v_i\̲i̲n̲C̲\{a_1,a_2,...a…&#xff0c;定义一棵树…

Python 全局变量

报错信息&#xff1a;UnboundLocalError: local variable referenced before assignment 在函数内部修改全局变量时报错。 因为&#xff1a;在python里&#xff0c;如果在函数内部试图去修改一个全局变量&#xff0c;那么实际上的操作是 Python会创建一个新的名字一模一样的局部…

斑能不能彻底去掉_用茶树精油祛痘时,千万不能做这5件事!!!

祛痘注意事项~用茶树精油祛痘时&#xff0c;千万不能做这5件事&#xff01;&#xff01;&#xff01;长痘痘虽然是令人很头疼的事&#xff0c;但是茶树精油祛痘、去痘印功效可谓是无敌的&#xff01;茶树精油是自然界中的抗菌大师&#xff0c;能净化皮肤、平衡皮肤油脂分泌&…

JAX-RS 2.0:自定义内容处理

我试图想到一个更好的标题&#xff0c;但未能拿出一个&#xff01; 请多多包涵……。 JAX-RS 2.0规范允许我们无缝地将JAXB对象编组到HTTP请求/响应主体/从HTTP请求/响应主体中解组。 简而言之&#xff0c;我们可以使用域对象&#xff0c;而不必担心基于JAX-RS的解决方案中的低…

这个夏天,感动我的歌,感动我的你

七里香 词&#xff1a;方文山 曲&#xff1a;周杰伦 JAY 窗外的麻雀 在电线杆上多嘴你说这一句 很有夏天的感觉手中的铅笔 在纸上来来回回我用几行字形容你是我的谁 秋刀鱼的滋味 猫跟你都想了解初恋的香味就这样被我们寻回那温暖的阳光 像刚摘的鲜艳草莓你说你…

构造函数模式

function student(props){this.nameprops.name || 匿名;//默认是匿名this.gradeprops.grade || 1;}student.prototype.hellofunction(){console.log(hello this.name);}function createStudent(props){return new student(props||{})}var xiaomingcreateStudent({name:xiaomin…

android 获取应用内存大小,如何在Android中获取当前内存使用量?

这取决于您要获得的内存查询的定义。通常&#xff0c;您想知道堆内存的状态&#xff0c;因为如果它占用了太多内存&#xff0c;您就会得到OOM并使应用程序崩溃。为此&#xff0c;您可以检查下一个值&#xff1a;final Runtime runtime Runtime.getRuntime();final long usedMe…

Waymo在美国推出自动驾驶汽车共享服务

导读经过数月的测试和数百万英里的无人驾驶汽车技术开发&#xff0c;Waymo 正式在美国推出了具有商业性质的自动驾驶汽车的共享服务。该公司的 Waymo One 项目将为客户提供 24 小时自动驾驶汽车服务。最初&#xff0c;这项服务将仅限于菲尼克斯周边城市&#xff0c;包括坦佩 (T…

2019春第一次课程设计实验报告

一、实验项目名称&#xff1a; 飞机游戏简化的编写 二、实验项目功能描述&#xff1a; 这个实验主要是实现游戏的正常运行&#xff0c;实现控制飞机的移动功能&#xff0c;增加其实用度&#xff0c; 同时还实现发射子弹和出现敌机的操作&#xff0c;利用函数封装重构飞机游戏&a…

区别和联系_动机与主题的区别与联系

今天我算是彻底弄明白了动机与主题的区别与联系&#xff08;暴论&#xff09;。当前些天我开始尝试写简单的奏鸣曲时&#xff0c;主题是什么&#xff0c;这个问题卡住了我&#xff0c;因为之前写的练习曲都是基于简单动机的。所以我求助于维基百科。主题是什么&#xff1f;参考…