- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
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 的 Lists
、Sets
和 Maps
类,了解以“new”开头的方法以获取更多示例。
除非您是为旧版本的 Java 编写代码,否则从 Java 7 开始,最好只使用菱形运算符。
关于java - 什么是减少Java冗长的好模式/技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1250598/
我有一些记录到标准输出的测试,我想根据 nose 运行的冗长程度更改我的测试脚本中的日志级别。 如何从正在运行的测试之一中访问 running nose 实例的详细信息? 最佳答案 这有点 hack,
我们正在尝试序列化一个对象树。虽然我们已经成功了。我希望找到一种方法来简化生成的 xml。 对象看起来像下面这样: public class RuleSet { public IEnumera
查看 git-config 变量和 git-pull 文档,我没有看到默认情况下使 git-pull pull 冗长的方法。有人知道方法吗? 最佳答案 并不是所有的配置参数都适用!但是您可以使用别名自
我有一个小型或中等规模的 F# 项目,15 个 *.fs 文件,大约 2000 行代码。编译突然有点慢,大约5秒。我想找出导致编译速度变慢的原因,但找不到像“详细”这样的 fsc 开关,导致它显示进度
许多 scikit-learn 函数都有一个 verbose 参数,根据他们的文档,“[c]控制详细程度:越高,消息越多”(例如,GridSearchCV)。 很遗憾,没有提供关于允许使用哪些整数(例
我正在尝试以旧方式运行 Rails 测试,即以点作为输出,但我认为我遗漏了一些东西。我找不到在哪里关闭冗长模式,每次我运行 rake 任务时,我都会得到一个测试描述列表,这些描述起初看起来不错,但最终
我是一名优秀的程序员,十分优秀!