java - 什么是减少Java冗长的好模式/技术

标签 java design-patterns coding-style

Java 可能有点烦人的一件事是表达概念所需的代码量。我信奉“代码越少越好”的理念,我想知道如何编写 Java 而又不至于令人沮丧地冗长。最近看了Hidden Features of Java问题并被介绍使用 double-brace initialization模拟 List 或 Map 文字。当然,使用这种方法有一些缺点,但它确实允许您用更少的字符来做某些事情,并且(如果您的格式正确)使代码更加清晰和清晰。我想知道是否没有其他巧妙的技巧和鲜为人知的语言功能可以使我的代码更简洁。

我希望看到答案,其中包含对该技术的解释、它所替代的更详细的方式以及使用该技术的任何潜在缺点。

最佳答案

在引入 diamond operator 之前在 Java 7 中,用于创建泛型类型的静态工厂方法可用于通过减少重复类型参数的需要来减少冗长。 (这是因为没有菱形运算符,Java 永远不会推断构造函数的类型参数,但会推断方法调用。)Google Collections使用这种技术,所以你可以写:

Set<MyClassWithALongName> set = Sets.newHashSet();

代替:

Set<MyClassWithALongName> set = new HashSet<MyClassWithALongName>();

查看 Google Collections 的 ListsSetsMaps 类,了解以“new”开头的方法以获取更多示例。

除非您是为旧版本的 Java 编写代码,否则从 Java 7 开始,最好只使用菱形运算符。

关于java - 什么是减少Java冗长的好模式/技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250598/

相关文章:

java - 通过 Eclipse JPA 到 MS SQL Server : Ping Failed

java - addproperty() 函数中不同类型的属性?

java - Spring如何使用私有(private)构造函数(单例模式)和来自工厂的对象实例化cClasses?

iphone - 我需要像程序员一样思考 : Childs and Parents in Cocos2d, 程序结构、枚举等

python - for 循环如果变量存在 - 如何使其变得Pythonic?

java - 需要帮助理解 ConvolveOp 内核类中使用的矩阵

java - 编译开源数据包捕获软件

python - 使用组合、策略模式和字典更好地实例化存储在字典中的类

c# - 一个大存储库与许多小存储库?

java - 使用枚举的序数是一种好习惯吗?