Tag: 编码风格的

非瞬态类成员上的Java PMD警告

在线: private boolean someFlag; 我得到以下PMD警告: 发现非瞬态,非静态成员。 请标记为瞬态或提供访问者。 有人可以解释为什么这个警告在那里,它意味着什么? (我理解如何修复它,我不明白为什么它在那里……) 我在许多其他成员声明中也得到了这个…… 编辑:我的类绝对不是一个bean,而不是可序列化的……

用Java编写“漂亮”代码的标准?

我正在阅读一些关于Java编码标准的书籍。 我一直都喜欢美丽而干净的代码。 但是有一些事情让我烦恼。 例如,方法名称应以小写单词开头,如果它有第二个单词,则应以大写字母开头。 但变量的标准是一回事。 我觉得这有点令人困惑。 所以我问你们,你们的Java编码标准是什么? 喜欢: 你如何命名对象,方法,类等 。 如果同一个类中有多个对象,那么如何命名第二个? 如果在方法的参数中有一个对象,并且在此方法中有同一个类中的另一个对象,那么如何命名它们? 性能/代码美容,许多小方法或更长的方法的最佳折衷是什么? 随意说些什么。 =)

JSP无法找到样式表

层次: WEB-INF / JSP WEB-INF /风格 我在JSP文件中链接样式表,该文件位于WEB-INF / jsp中: 但它不起作用! 当我打开我的应用程序时,没有样式和Tomcat的写入: Apache Tomcat/7.0.14 – Error report HTTP Status 404 – type Status reportmessage description The requested resource () is not available.Apache Tomcat/7.0.14 我怎么能克服它? 我的项目: http : //img835.imageshack.us/img835/6159/73536381.jpg 我正在使用spring框架3.我已经将我的文件夹与WEB-INF之外的样式和图像放在一起,但它仍然不起作用。 我写的是我的jsp文件: 它不起作用……

是否有CheckStyle规则强制if else关键字在if / else梯形图中位于同一行?

基于这个问题 ,似乎CheckStyle的默认模板将允许if else梯子将if和else与换行符分开。 意思是我希望将此代码标记为违规: if (true) { System.out.println(“20”); } else if (true) { System.out.println(“30”); } 是否有CheckStyle规则来阻止这种情况? 查看文档,我没有看到一个,如果我不需要,我宁愿不使用通用正则表达式规则。 此外,如果我使用GenericIllegalRegexp模块,多行正则表达式似乎不起作用。 这有什么补救措施吗?

Java约定引用方法和变量

Java约定的10.2节建议使用类名而不是对象来使用静态变量或方法,即MyClass.variable1或MyClass.methodName1()而不是 MyClass Obj1 = new MyClass(); Obj1.variable1; Obj1.methodName1(); 没有解释这背后的基本原理,虽然我怀疑这与内存使用有关。 如果有人能解释这一点会很棒。

Java返回Object /修改对象(编码指南)

如果一个方法填充/修改一个对象,是否最好返回该对象或将返回类型保持为void,该方法是否会通过其引用修改Object? public Obj populate(Obj o) { …. return o; } public void populate(Obj o) { …. } 我知道这是一个微不足道的问题,但哪一个是最受欢迎的?

Long.valueOf(java.lang.String)和new Long(java.lang.String)之间的区别?

我正在整合由两个不同的人编写的代码,并注意到将一个String值转换为Long已经以两种不同的方式完成。 编码器#1做到了这一点: String strId = “12345678”; … Long lId = new Long(strId); 编码器#2做到了这一点: String strId = “12345678”; … Long lId = Long.valueOf(strId); 在function上,代码操作完全相同。 每个位周围都有一个try / catch块来处理抛出的任何NumberFormatException 。 传入的字符串值是一个8位数的字符串,表示一个小数: “12345678” ,在这两种情况下都正确地转换为Long 。 在构造函数中传递字符串和使用Long.valueOf()之间是否存在任何function差异? 我在这里检查了构造函数doc: 龙(java.lang.String中) 以及valueOf()的文档: Long.valueOf(java.lang.String中) 据我所知,他们都调用parseLong()所以使用哪个并不重要。 我只是想确保自己不会在未来的某些奇怪行为中做好准备。 另外,哪种风格比其他风格更“正确”(哈哈)?

如何以优雅的方式初始化具有大量字段的类?

在我的应用程序中,我必须实例化许多不同类型的对象。 每种类型都包含一些字段,需要添加到包含类型中。 我怎样才能以优雅的方式做到这一点? 我当前的初始化步骤看起来像这样: public void testRequest() { //All these below used classes are generated classes from xsd schema file. CheckRequest checkRequest = new CheckRequest(); Offers offers = new Offers(); Offer offer = new Offer(); HotelOnly hotelOnly = new HotelOnly(); Hotel hotel = new Hotel(); Hotels hotels = new Hotels(); Touroperator touroperator = new Touroperator(); […]

你应该总是使用枚举而不是Java中的常量

在java <1.5中,常量将像这样实现 public class MyClass { public static int VERTICAL = 0; public static int HORIZONTAL = 1; private int orientation; public MyClass(int orientation) { this.orientation = orientation; } … 你会像这样使用它: MyClass myClass = new MyClass(MyClass.VERTICAL); 现在,在1.5中显然你应该使用枚举: public class MyClass { public static enum Orientation { VERTICAL, HORIZONTAL; } private Orientation orientation; public MyClass(Orientation orientation) […]

最合适的边界检查 – 构造函数或setter?

对Java来说还是比较新的,我想知道哪个是处理这个问题的更好方法。 我有一个类构造函数,它接受一些参数,在这个类中也是公共getter和setter: private String name; private Float value; public MySampleClass(String theName, Float theValue) { setName(theName); setValue(theValue); } public void setName(String n) { this.name = n; } public value setValue(Float v) { this.value = v; } 我想对这个Float做一些检查。 看起来最好把它放在setter中: public value setValue(Float v) { if (v 1.0f) { this.value = 1.0f; } } 这段代码最初在构造函数中检查了边界,并在setter中再次检查,这似乎是多余的。 我更改了构造函数以调用setter并将检查放在那里。 那更有意义吗? 或者我违反了一些我完全不知道的惯例?