您将很快意识到,对于Javadoc,JDK8更严格(默认情况下)。 ( 链接 – 见最后一点) 如果你从来没有生成任何Javadoc,那么当然你不会遇到任何问题,但像Maven发布过程和可能你的CI构build会突然失败,他们在JDK7中工作得很好。 任何检查Javadoc工具出口值的东西现在都会失败。 与JDK7相比,JDK8 Javadoc在warnings方面可能也更加冗长,但这不在此处。 我们在谈论errors ! 这个问题是为了收集如何处理这个问题的build议。 什么是最好的方法? 这些错误是否应该在源代码文件中一劳永逸地解决? 如果你有一个庞大的代码库,这可能是很多工作。 还有什么其他的select? 你也欢迎评论现在失败的事情。 现在失败的恐怖故事 wsimport工具 wsimport工具是创buildWeb服务使用者的代码生成器。 它包含在JDK中。 即使使用JDK8中的wsimport工具,它也会产生无法使用JDK8中的javadoc编译器编译的源代码。 @author标签 我打开3-4年的源代码文件,看到这个: /** * My very best class * @author John <john.doe@mine.com> */ 现在由于<字符而失败。 严格来说这是有道理的,但不是很宽容。 HTML表格 你的Javadoc中的HTML表? 考虑这个有效的HTML: /** * * <table> * <tr> * <td>Col1</td><td>Col2</td><td>Col3</td> * </tr> * </table> */ 这现在失败,错误消息no summary […]
作为一位经验丰富的Spring用户,我认为Spring Integration最适合需要某些(JMS)消息传递function( 更多详细信息 )的项目。 经过一段时间的工作与Spring集成,它仍然感觉像很多configuration的开销,给定的渠道,你必须configuration一些请求 – 响应(监听不同的JMS队列)通信。 因此,我正在寻找一些背景信息,骆驼是如何不同于spring集成,但似乎有信息是非常有余地,我发现: http://java.dzone.com/articles/spring-integration-and-apache (自2009年12月起,在Spring Integration和Camel之间实现真实世界的集成场景非常中立) http://hillert.blogspot.com/2009/10/apache-camel-alternatives.html (比较骆驼与其他解决scheme,2009年10月) http://raibledesigns.com/rd/entry/taking_apache_camel_for_a(Matt Raible,2008年10月) 问题是:你在使用这个堆栈的时候有什么经验? 在哪种情况下,你会推荐Camel的Spring Integration缺乏支持? 你在哪里看到每个的利弊? 任何意见来自现实世界的项目,高度赞赏。
我已经下载了一些用Java编写的开源软件,并尝试使用Eclipse进行编译。 我得到了错误:“ types的层次结构类名”是不一致的 “在一些文件中。 造成这些错误的原因是什么?如何解决这些错误?
我正在阅读有关Maven的文章,现在和无处不在,我看到这个词(mojo)。 我大致了解它的意思,但我不会拒绝一个好的解释。 我试图谷歌,但只发现非maven的解释。 POJO – 好的,但MOJO? Maven老Java对象?
这是我的代码: class A { static A obj = new A(); static int num1; static int num2=0; private A() { num1++; num2++; } public static A getInstance() { return obj; } } public class Main{ public static void main(String[] arg) { A obj = A.getInstance(); System.out.println(obj.num1); System.out.println(obj.num2); } } 输出是1 0 ,但我不明白。 有人可以给我解释吗?
我怎样才能configurationLogbacklogging到不同的目的地logging器的不同级别? 例如,给定以下的Logbackconfiguration,Logback会将INFO消息logging到STDOUT并将ERROR消息logging到STDERR ? (请注意,这个例子是第3章:Logbackconfiguration中显示的logback-examples/src/main/java/chapters/configuration/sample4.xml示例的变体 )。 <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n </pattern> </encoder> </appender> <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n </pattern> </encoder> <target>System.err</target> </appender> <!– What is the effective level of "chapters.configuration"? –> <logger name="chapters.configuration" level="INFO" additivity="false"> <appender-ref ref="STDOUT" /> </logger> <logger name="chapters.configuration" level="ERROR" […]
在Java中通过类加载器从jar中获取的资源上构buildFile实例有没有办法? 我的应用程序使用jar(默认)或运行时(用户input)指定的文件系统目录中的一些文件。 我正在寻找一个一致的方式 a)以stream的forms加载这些文件 b)将这些文件分别列在用户定义的目录或jar中的目录中 编辑:显然,理想的做法是远离java.io.File完全。 有没有办法从类path加载一个目录,并列出其内容(其中包含的文件/实体)?
我见过很多代码都有类似Class clazz ,这是从哪里来的? 这是一种约定吗? 我认为“clazz”甚至不是一个英文单词,根本就没有意义,那么这么多程序员怎么巧合地错误地命名呢?
这里是封装和抽象的简单定义。 抽象: Java中的抽象过程用于隐藏某些细节,只显示对象的基本特征。 换句话说,它处理对象(接口)的外部视图。 唯一很好的例子,我看到这个跨越不同的网站是界面。 封装: 它基本上是隐藏的对象的状态,像私人,公共,保护等修饰符的帮助下,我们只有在需要的情况下通过公开的方法暴露国家。 我们用private , public等修饰符实现的function,也从外面的世界隐藏了不必要的细节,这只不过是一个抽象的概念 所以,从上面的解释看来封装是抽象的一部分,或者我们可以说它是抽象的一个子集。 但是,为什么封装术语只能在抽象化的时候发明呢? 我相信应该有一些重大的区别,但是网上的资料大部分都是一样的。 虽然这个问题在这个论坛上也提过了,但是我再次发表了一些具体的疑问。 有些答复也说抽象是一个概念,封装是实现。 但我不买这个 – 如果这是真的,那么我可以认为这两个不同的概念提供给我们混淆。 更新: – 5年后,我已经拿出了我自己的答案这是基于这个post和下面的答案的要点 抽象和封装之间的区别? 封装vs抽象现实世界的例子
以下是关于如何使Javagenerics类将单个项目追加到数组的一个片段。 我怎样才能使appendToArray静态方法。 向方法签名添加静态会导致编译错误。 public class ArrayUtils<E> { public E[] appendToArray(E[] array, E item) { E[] result = (E[])new Object[array.length+1]; result[array.length] = item; return result; } }