Tag: 编码风格的

在Java中处理未接受的方法参数最好的是什么?

当你在一个DAO对象中写一个方法,并且你不希望这个方法接受某些输入时,为了讨论起见,说它不允许空参数。 你如何实现这一点,考虑到这种方法将来可能会被新的团队成员重用。 我这样做的方式是: 在接口中,我在方法javadoc中记录了参数a,b和c不能为null。 在方法内部,我首先检查空值,如果a,b或c中的任何一个为null,则抛出IllegalArgumentException。 但是,如果未来的一些开发人员只是读取方法签名并决定它需要什么并开始使用它,而不关注这个细节,更糟糕的测试并没有揭示它。 不会发生NULL指针exception,我们收到一条有用的错误消息,但是我们仍然会在生产中遇到一个可以避免的错误。 有没有办法在编译时强制执行此操作? 我对此表示怀疑,但这样做最安全,最糟糕的开发人员方法是什么?

Java eclipse突出显示缺少括号

我无法在任何地方找到这个选项。 在eclipse中是否有某种方式来警告这样的事情? if(a==b)continue; 而不是if(a==b){continue;} 或者也许格式化function可以解决这个问题?

在try / finally外部或内部初始化一次性资源

我已经看到了两种获取和处理资源的方法。 或者: Resource resource = getResource(); try { /* do something with resource */ } finally { resource.close(); } 要么: Resource resource = null; try { resource = getResource(); /* do something with resource */ } finally { if (resource != null) resource.close(); } 我想知道哪种风格更可取。 第一个避免if条件,而第二个(我假设)在赋值之后但在进入try块之前处理线程中止的情况。 这些风格有什么其他优点和缺点? 我最好使用哪一个?

包名称的Java代码约定

可能重复: java包名中单词分隔符的约定是什么? 我想知道是否有包含多个单词的包名称的代码汇编。 例如包名com.dreamcom.objectInterfaces 。 骆驼的情况适合这种情况吗?

使用NullPointerException测试null是不好的风格?

我有以下模式的一些代码: return a().b().c().d().e(); 现在因为这些方法中的每一个都可以返回null ,所以通常会测试这个: if( (a()!=null) && (a().b() != null) && ….) { return a().b().c().d().e(); } else { return null; } (也许可以使用一些局部变量来避免重复调用) 我很想做: try { return a().b().c().d().e(); } catch (NullPointerException e) { return null; } 这被认为是不好的风格? 效率低下? 还是挺好的?

Google Java Style的Checkstyle规则

是否有带Google Java Style的Checkstyle规则文件?

使用静态私有方法真的比实例私有方法更快/更好吗?

我要问的是这样做是否有区别: public Something importantBlMethod(SomethingElse arg) { if (convenienceCheckMethod(arg)) { // do important BL stuff } } private boolean convenienceCheckMethod(SomethingElse arg) { // validate something } 和这个: public Something importantBlMethod(SomethingElse arg) { if (convenienceCheckMethod(arg)) { // do important BL stuff } } private static boolean convenienceCheckMethod(SomethingElse arg) { // validate something } 我实际上使用选项1,因为它对我来说似乎更自然。 那么第一种和第二种方式之间是否有样式/约定/性能差异? 谢谢, 正如我在测试中所建议的那样,在我的基准测试中,动态方法更快。 […]

Java成员枚举类型是否应该大写?

这里的肛门问题:我们有Java枚举,它们是自己的类,以及作为类成员的枚举: public enum reportType { … 每次我看到它都会刺激我*因为当我看到它在声明中使用时,它是一个类型,并且类型应该大写。 但是当我试图利用它时,Eclipse警告我不应该大写字段名称。 我认为Eclipse可能比我更了解官方的Java约定,但它似乎并不正确。 甚至翻阅了Java约定文档,但没有看到引用这个问题。 没有双关语意

太多的import垃圾邮件我的代码

在我的项目中,我有一个shapes包,其中包含我为我的图形程序设计的形状,例如Rectangle,Circle。 我还有一两个与java.awt类名称相同的包。 现在,因为我不想重命名我的代码库中的每个类,为了向我的源文件显示我所说的类,当我声明一个新的Rectangle时,我需要: 1-显式导入矩形类,即导入shapes.Rectangle 要么 2-只导入我需要的java.awt类而不导入java.awt。*,它自动包含awt.Rectangle 现在的问题是两种方式导致大量导入,我目前在每个源文件中平均有15-25个导入,这严重地使我的代码混乱和混乱。 代码中的导入太多是件坏事吗? 有没有办法解决?

关于静态方法的Java编码约定

这是一个非常简单的问题,但我认为这有点争议。 当我编写Java类时,我使用以下顺序。 class Foo { // static fields // instance fields // constructors // methods (non-static and static methods are mixed but sorted based on their functionalities) } 我读了一篇文章说: (来自http://code.google.com/webtoolkit/makinggwtbetter.html#codestyle ) Java类型应具有以下成员顺序: 嵌套类型(混合内部和静态类是可以的) 静态字段 静态初始化器 静态方法 实例字段 实例初始化器 构造函数 实例方法 如果我按照文章,上面的顺序应该是 class Foo { // static fields // static methods // instance fields // constructors […]