我们有一个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()
代码?)
我正在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)
我该如何解决?
我已经工作Eclipse
了很长时间,最近有几个建议可以使用IntelliJ
.
正如我刚刚看到的那样," 哪个IDE更好? " 的格式问题令人不悦(并非没有充分的理由) - 我想客观地了解IntelliJ
结束的优点是什么Eclipse
.
我知道是什么Eclipse
,坦率地说,我没有遗漏任何东西.但这正是我在开始工作之前所说的Visual Studio 2005
(C#
)Eclipse
,现在我甚至无法在不生气的情况下编写Hello WorldVS
...
我会到世界缩小的问题Java SE
和Java EE
唯一的.不Android
,没有GUI.
我在寻找:
是什么IntelliJ
给我说Eclipse
没有?
什么Eclipse
让我IntelliJ
缺乏?
尽量做到客观,如果您对这两种工具都有丰富的经验,请回答.
谢谢.
编辑:我正在寻找的工作范围既适用于私人项目,也适用于同一产品的几个开发人员团队.但如果我必须选择 - 我将只专注于团队.
JUnit是这项工作的重要组成部分(我个人几个月前开始在TDD工作 - 但不能打开它).
我也会有兴趣了解ANT
/ Maven
相关的好处,如果有-虽然我的主要动机是知道我是否能够从之类的东西获益:更快的发展(如代码生成,模板,自动完成等),更容易AUT,更简单开发期间的Java EE应用程序部署(适用于UT)等
我有一个Java
模块,User-Agent
从最终用户的浏览器接收字符串需要稍微不同的行为取决于浏览器的类型,浏览器的版本,甚至可能是操作系统.如:{"FireFox", "7.0", "Win7"}
,{"Safari", "3.2", "iOS9"}
我知道User-Agent
由于插件安装不同等原因,字符串的格式可能因完全相同的配置而异.
我的问题:
User-Agent
井的结构是否定义明确?如果是的话 - 我在哪里可以找到它?(根据我对RFC的理解,这里没有太多的标准化).No
- 是否有正确的方法来解析它以获得我需要的信息?User-Agent
字符串之外,还有更好的方法来获取我需要的信息吗?重要提示 - 我说的是一个网络应用程序,因此我的数据收集能力仅限于此javascript
.
我有一段旧代码,用于在字符串中执行查找和替换标记.
它接收映射from
和to
对,迭代它们,对于每个对,迭代目标字符串,查找from
使用indexOf()
,并用值替换它to
.它完成了a的所有工作StringBuffer
并最终返回a String
.
我用这一行替换了代码:replaceAll("[,. ]*", "");
我运行了一些比较性能测试.
比较1,000,000
迭代时,我得到了这个:
旧代码:1287ms
新代码:4605ms
3倍长!
然后我尝试用3次调用替换它replace
:
replace(",", "");
replace(".", "");
replace(" ", "");
结果如下:
旧代码:1295
新代码:3524
2倍长!
任何想法,为什么replace
和replaceAll
是如此低效?我可以做些什么来加快速度吗?
编辑:感谢所有答案 - 主要问题确实是[,. ]*
没有做我想做的事情.将其更改为[,. ]+
几乎等于非基于正则表达式的解决方案的性能.使用预编译的正则表达式有所帮助,但是很少.(这是一个非常适用于我的问题的解决方案.
测试代码:
用正则表达式替换字符串:[,.]*
用正则表达式替换字符串:[,.] +
用正则表达式替换字符串:[,.] +和预编译模式
使用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的能力的通用解决方案 - 目前我唯一的解决方案是基于反射.boolean
String
组态
<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) 我能够将org.apache.coyote.http11.Http11Protocol.SERVER的值重命名为其他任何内容,因此HTTP-Response-Header包含以下内容:
服务器:Apache
而不是默认值
服务器:Apache-狼/ 1.1
使用org.apache.coyote.http11.Http11Protocol.SERVER的空值不会删除Server-Header.
如何从我的共鸣中删除Server-Header?
我遇到了maven父子关系的以下" 模式 ":
http://yuml.me/3f8dd366
在这个例子中,我们有一个带有2个子模块的模块.该模块有一个父pom"用于构建模块的父",它知道这两个子模块是它的子节点.
子模块怎么也不知道这个父级知道它们,并且他们认为他们的父级是名为"父级的依赖管理".它有常见的配置,如依赖管理,插件配置,常见属性等.
我的问题:
这是一个"好"的模式吗?意思是它有优点/缺点,因为看似更直观的儿童< - >父母关系模式
我在这里阅读了一些关于0xCAFEBABE
每个java .class文件开头的幻数的帖子,想知道为什么需要它 - 这个标记的目的是什么?
还需要它吗?或者它现在只是为了向后兼容?
找不到答案的帖子 - 我也没有在java 规范中看到答案
我正在使用Groovy
脚本作为SoapUI
自动化工作的一部分.
我试着在SoapUI的网站上查看有关其对象模型的文档以及如何Groovy
在testRunner
上下文中正确使用,但我还是找不到任何有用的东西.由于Groovy
编辑器SoapUI
耗材没有自动完成功能,因此很难猜测每个对象具有哪些属性.
是否有关于API以及如何使用它们的良好文档?