小编Ron*_*onK的帖子

逐行迭代文本文件的内容 - 是否有最佳实践?(与PMD的AssignmentInOperand相比)

我们有一个Java应用程序,它有一些知道读取文本文件的模块.他们非常简单地使用这样的代码:

BufferedReader br = new BufferedReader(new FileReader(file));  
String line = null;  
while ((line = br.readLine()) != null)  
{  
   ... // do stuff to file here  
} 
Run Code Online (Sandbox Code Playgroud)

我在我的项目上运行PMD并在线路上获得了" AssignmentInOperand "违规while (...).

除了显而易见的事情之外,是否有更简单的方法来执行此循环:

String line = br.readLine();  
while (line != null)  
{  
   ... // do stuff to file here  
   line = br.readLine();  
} 
Run Code Online (Sandbox Code Playgroud)

这被认为是更好的做法吗?(虽然我们"复制" line = br.readLine()代码?)

java pmd while-loop

38
推荐指数
4
解决办法
8万
查看次数

使用Powermock时NoClassDefFoundError

我正在junit使用PowerMock测试运行器运行测试用例.我正在使用以下命令行来执行它:

java -cp .:junit-4.9b2.jar:easymock-3.0.jar:powermock-easymock-1.4.8-full.jar org.junit.runner.JUnitCore SampleTest
Run Code Online (Sandbox Code Playgroud)

这样做时,我收到此错误:

initializationError(SampleTest)
java.lang.NoClassDefFoundError: org/junit/internal/runners/TestClassRunner
...
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

java junit unit-testing easymock powermock

30
推荐指数
4
解决办法
3万
查看次数

IntelliJ比Eclipse有什么优势?

我已经工作Eclipse了很长时间,最近有几个建议可以使用IntelliJ.

正如我刚刚看到的那样," 哪个IDE更好? " 的格式问题令人不悦(并非没有充分的理由) - 我想客观地了解IntelliJ结束的优点是什么Eclipse.

我知道是什么Eclipse,坦率地说,我没有遗漏任何东西.但这正是我在开始工作之前所说的Visual Studio 2005(C#)Eclipse,现在我甚至无法在不生气的情况下编写Hello WorldVS ...

我会到世界缩小的问题Java SEJava EE唯一的.不Android,没有GUI.

我在寻找:
是什么IntelliJ给我说Eclipse没有?
什么Eclipse让我IntelliJ缺乏?

尽量做到客观,如果您对这两种工具都有丰富的经验,请回答.

谢谢.

编辑:我正在寻找的工作范围既适用于私人项目,也适用于同一产品的几个开发人员团队.但如果我必须选择 - 我将只专注于团队.
JUnit是这项工作的重要组成部分(我个人几个月前开始在TDD工作 - 但不能打开它).
我也会有兴趣了解ANT/ Maven相关的好处,如果有-虽然我的主要动机是知道我是否能够从之类的东西获益:更快的发展(如代码生成,模板,自动完成等),更容易AUT,更简单开发期间的Java EE应用程序部署(适用于UT)等

java eclipse ide development-environment intellij-idea

30
推荐指数
1
解决办法
8568
查看次数

有没有一种很好的方法来解析用户代理字符串?

我有一个Java模块,User-Agent从最终用户的浏览器接收字符串需要稍微不同的行为取决于浏览器的类型,浏览器的版本,甚至可能是操作系统.如:{"FireFox", "7.0", "Win7"},{"Safari", "3.2", "iOS9"}

我知道User-Agent由于插件安装不同等原因,字符串的格式可能因完全相同的配置而异.

我的问题:

  1. User-Agent井的结构是否定义明确?如果是的话 - 我在哪里可以找到它?(根据我对RFC的理解,这里没有太多的标准化).
  2. 假设#1的问题是No- 是否有正确的方法来解析它以获得我需要的信息?
  3. 除了User-Agent字符串之外,还有更好的方法来获取我需要的信息吗?

重要提示 - 我说的是一个网络应用程序,因此我的数据收集能力仅限于此javascript.

java parsing user-agent

28
推荐指数
3
解决办法
2万
查看次数

String.replaceAll比自己完成工作慢得多

我有一段旧代码,用于在字符串中执行查找和替换标记.

它接收映射fromto对,迭代它们,对于每个对,迭代目标字符串,查找from使用indexOf(),并用值替换它to.它完成了a的所有工作StringBuffer并最终返回a String.

我用这一行替换了代码:replaceAll("[,. ]*", "");
我运行了一些比较性能测试.
比较1,000,000迭代时,我得到了这个:

旧代码:1287ms
新代码:4605ms

3倍长!

然后我尝试用3次调用替换它replace:
replace(",", "");
replace(".", "");
replace(" ", "");

结果如下:

旧代码:1295
新代码:3524

2倍长!

任何想法,为什么replacereplaceAll是如此低效?我可以做些什么来加快速度吗?


编辑:感谢所有答案 - 主要问题确实是[,. ]*没有做我想做的事情.将其更改为[,. ]+几乎等于非基于正则表达式的解决方案的性能.使用预编译的正则表达式有所帮助,但是很少.(这是一个非常适用于我的问题的解决方案.

测试代码:
用正则表达式替换字符串:[,.]*
用正则表达式替换字符串:[,.] +
用正则表达式替换字符串:[,.] +和预编译模式

java regex string replace

25
推荐指数
2
解决办法
3万
查看次数

Spring - 仅当值不为null时才设置属性

使用Spring时,只有在传递的值不为null时才可以设置属性吗?

例:

<bean name="myBean" class="some.Type">
   <property name="abc" value="${some.param}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

我正在寻找的行为是:

some.Type myBean = new some.Type();
if (${some.param} != null) myBean.setAbc(${some.param});
Run Code Online (Sandbox Code Playgroud)

我需要这个的原因是因为abc有一个默认值,我不想用a覆盖null.我正在创建的Bean不在我的源代码控制之下 - 所以我无法改变它的行为.(另外,abc为此目的可能是原始的,所以无论如何我都不能用null设置它.

编辑:
根据答案,我认为我的问题需要澄清.

我有bean我需要实例化并传递给我使用的第三方.这个bean拥有各类(的许多特性(目前12) ,,int 等), 每个属性都有一个默认值-我不知道它是什么,宁愿不需要知道,除非它成为一个问题.我正在寻找的是一个来自Spring的能力的通用解决方案 - 目前我唯一的解决方案是基于反射.booleanString

组态

<bean id="myBean" class="some.TypeWrapper">
   <property name="properties">
     <map>
         <entry key="abc" value="${some.value}"/>
         <entry key="xyz" value="${some.other.value}"/>
         ...
      </map>
   </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

public class TypeWrapper
{
    private Type innerBean;

    public TypeWrapper()
    {
        this.innerBean = new Type();
    }

    public void setProperties(Map<String,String> properties)
    {
        if (properties …
Run Code Online (Sandbox Code Playgroud)

java spring javabeans

23
推荐指数
3
解决办法
4万
查看次数

删除服务器头tomcat

我能够将org.apache.coyote.http11.Http11Protocol.SERVER的值重命名为其他任何内容,因此HTTP-Response-Header包含以下内容:

服务器:Apache

而不是默认值

服务器:Apache-狼/ 1.1

使用org.apache.coyote.http11.Http11Protocol.SERVER的空值不会删除Server-Header.

如何从我的共鸣中删除Server-Header?

http-headers tomcat7

15
推荐指数
3
解决办法
2万
查看次数

Maven亲子关系

我遇到了maven父子关系的以下" 模式 ": 关系船的例子http://yuml.me/3f8dd366

在这个例子中,我们有一个带有2个子模块的模块.该模块有一个父pom"用于构建模块的父",它知道这两个子模块是它的子节点.

子模块怎么也不知道这个父级知道它们,并且他们认为他们的父级是名为"父级的依赖管理".它有常见的配置,如依赖管理,插件配置,常见属性等.

我的问题:
这是一个"好"的模式吗?意思是它有优点/缺点,因为看似更直观的儿童< - >父母关系模式

java maven

14
推荐指数
2
解决办法
8417
查看次数

为什么我们在.class文件的开头需要一个幻数?

我在这里阅读了一些关于0xCAFEBABE每个java .class文件开头的幻数的帖子,想知道为什么需要它 - 这个标记的目的是什么?
还需要它吗?或者它现在只是为了向后兼容?

找不到答案的帖子 - 我也没有在java 规范中看到答案

java magic-numbers

13
推荐指数
1
解决办法
6275
查看次数

SoapUI Groovy API文档

我正在使用Groovy脚本作为SoapUI自动化工作的一部分.

我试着在SoapUI的网站上查看有关其对象模型的文档以及如何GroovytestRunner上下文中正确使用,但我还是找不到任何有用的东西.由于Groovy编辑器SoapUI耗材没有自动完成功能,因此很难猜测每个对象具有哪些属性.

是否有关于API以及如何使用它们的良好文档?

documentation groovy soapui

13
推荐指数
1
解决办法
2万
查看次数