我想用Spring/Hibernate弄湿我的脚.但是我觉得如果我正在使用代码而不是只是逐章阅读一本书,我会更快地前进并且更有动力.
有没有人对家庭项目有任何好的想法来学习这些技术?您可能已经参与并认为有用的任何练习?
或者您可能知道基于单个项目的书籍/教程并引导您完成它?
我有一堆返回HashSet的方法.我希望我的单元测试检查这些对象的状态,即确认someObject.getName() == "foobar".
但是,无法保证hashset迭代器顺序,因此我的单元测试失败了一些时间.如何为这样的东西编写单元测试?
例如:
@Test
public void testRowsToBeRead(){
HashSet<SomeObject> rows = new SomeObject().read();
assertEquals(19, rows.size());
for(SomeObject r:rows){
//How do I confirm contents?
}
}
Run Code Online (Sandbox Code Playgroud)
我想我可能很快就会接受答案.
我现在遇到的问题是我已经实现了equals方法,它只检查每个设计对象中的2个字段(它模仿数据库表).但是在我的单元测试中,我想检查所有字段,如描述等,这些不在我的平等中.因此,如果交换了2个字段并且这些字段不在我的equals实现中,那么单元测试会给出误报.
我有一个对话框,根据应用程序的状态,当前用户的安全性等显示各种内容.我正在传递几个布尔标志,然后根据这些标志启用和/或隐藏UI组件.Eg:
new MyDialog(showOptionsTable, allowFooInput, allowBarInput, isSuperUser)
Run Code Online (Sandbox Code Playgroud)
最初这开始是一些标志,这很好.但是现在随着需求的变化,它已经演变为五个布尔标志的输入.
处理这种行为的最佳做法是什么?这是否应该根据对话框的外观进行子类化?
我将我的数据库表映射到我的java对象.一般来说,我以复数形式命名我的表格,因为持有书籍信息的表格被称为BOOKS.然而,java对象代表一本书,应该称为Book.同样对于AUTHORS/Author等.
另一方面,它的那种简单化给了域对象和表.
是否存在人们遵循的某种命名惯例?我想这一般适用于应用程序而不仅仅是在进行O/R映射时.
我们有一堆自动生成的类,主要是Axis2存根,骨架等.对于一些复杂的wsdls,Axis2生成一个java-beans,stubs等的TON.我确信在使用自动生成时还有其他情况.
现在我们将它们视为代码库的其他第一类成员,它们存储在相同的包中.
但是,在进行重构,清理等操作时,很难清除来自这些自动生成的类的警告.例如,如果我试图清理代码以便使用Java1.5泛型,那么就没有什么好方法可以知道这些违规类中有多少是我们自动生成的.
我应该将这些自动生成的零件分离到不同的包装中吗?你们如何将这些工件存储在存储库中?
编辑:我在下面的相当多的答案中看到"在构建过程中生成".虽然我看到了这样做的好处,但我不知道如何摆脱存储库检查.
我的代码对这些类中的某些类具有编译时依赖性,对我来说,开发期间的构建是eclipse中的"ctrl-s".我们使用ant-scripts生成编译,运行测试并生成可交付成果.
#!/bin/bash
echo 'first line' >foo.xml
echo 'second line' >>foo.xml
Run Code Online (Sandbox Code Playgroud)
我是shell脚本的新手.
我试图在cygwin中运行上面的脚本.我希望能够将一行接一行写入新文件.
但是,当我执行上面的脚本时,我会看到foo.xml中的以下内容:
second line
Run Code Online (Sandbox Code Playgroud)
第二次运行脚本时,我在foo.xml中看到:
second line
second line
Run Code Online (Sandbox Code Playgroud)
等等.
此外,我在运行脚本后看到命令提示符下显示以下错误:
: No such file or directory.xml
Run Code Online (Sandbox Code Playgroud)
我最终将在unix盒子上运行这个脚本,我只是想用cygwin开发它.所以如果你能指出它是否是一个cygwin怪,我将不胜感激,如果是这样,我应该避免尝试使用cygwin来开发这样的脚本吗?
提前致谢.
静态实用方法通常被OO纯粹主义者所忽视.
然而,我想知道人们对用于避免像整个应用程序中的空检查这样简单的实用程序方法的看法.
String.trim()在null String上调用时抛出NPE.所以我必须这样做:
if(str!=null)
setValue(str.trim());
else
setValue("");
Run Code Online (Sandbox Code Playgroud)
如果我创建一个检查null的实用程序方法怎么办?
setValue(myTrim(str));
public static String myTrim(String str) {
if(str==null) return ""
else return str.trim();
}
Run Code Online (Sandbox Code Playgroud)
我遇到过这样的方法的一个问题是,团队中的一些开发人员可能不喜欢/不知道这个实用程序,并且可能在进行空比较后执行staight调用.
这是你做框架的事吗?如果是,那么人们在其应用程序中创建并正在使用的其他常用实用程序通用方法是什么?
你觉得这两种方法的优点和缺点是什么?
我正在从数据库中检索数千行,但我想在一个jsp上只显示大约200行.我通过创建下一行的链接来使用分页.
目前使用DB2,我唯一能做的就是FETCH FIRST 200行.所以当我到达第5页时,我正在做一个FETCH FIRST 1000行,然后我显示800到1000.
任何人都可以建议一个更好的解决方案,或者从jsp,但最好是从DB的角度来看?
这些是只读记录,即我只显示它们.此外,这些页面不在会话或任何内容,所以我不想保留任何游标.
谢谢.