我宁愿喜欢Java 7引入的泛型的菱形语法-
从节省时间的角度来看,并不是那么多(毕竟,大多数IDE都会为您填补这一点),而仅仅是因为它使代码看起来更简洁。由于这个原因和其他原因(主要是我正在开发一个新软件,并且Java
7中的一些新API会很有用),我很可能会切换现有代码库以使用/要求Java 7。
但是,已经有相当一部分已经写成钻石前的语法,我希望在整个过程中始终使用菱形语法。是否存在IDE快捷方式(我正在使用Netbeans,但显然可以在任何免费的IDE中打开项目来执行任务)还是可以自动切换现有通用代码以使用菱形语法的其他方式?
哦,是的,我已经在IntelliJ(免费社区版)上成功完成了此操作。
菜单>分析>检查代码…
结果,选择“ Java语言级别的迁移辅助工具>显式类型可以替换为<>”
右键单击,运行“应用修复’用<>’替换”,您将获得菱形。
统一类上存在关于菱形的错误,因此修复后某些代码可能无法编译。那时您必须将它们还原。
// anonymous class, <> doesn't work.
new Factory<Pig>(){ ... }
// however IntelliJ may wrongly "fix" it to
new Factory<>(){ ... } // does not compile.
我想说得具体一点。我有一个名为Result的类和一个名为Result的派生类 这些类在方法中用作返回类型。为此,我创建了这个helper类: 正如您所看到的,上面的代码对于成功有两种返回类型,一种是如果您不想返回任何东西,另一种是如果您想返回一些东西,但是失败的结果永远不会返回什么东西。这是不必要的,只是一个错误消息。这使我想到以下问题:当我想创建一个可以使用返回类型返回Success,而不使用返
我有一个类似于Pairs的类。我有一个特性,可以将这个类转换成Json格式。 当我使用这个特性时,我得到了以下错误,即对于
我正在使用Spring和Hibernate进行JSF项目,其中包括许多遵循相同模式的: > 接收并返回转换为 代码基本如下(省略检查): 鉴于大量的s与此完全相同(当然除了和的类型),我想知道是否值得使用一个通用转换器。泛型本身的实现并不困难,但我不确定声明bean的正确方法。 一个可能的解决方案如下: 1-编写泛型实现,我们称之为,没有任何Bean注释 2-将特定的转换器编写为MyGeneric
我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类
我正在创建一个由数组支持的泛型类型堆栈。当我尝试创建泛型类型数组时,Java不允许我这样做。有人告诉我,我必须创建一个类型为Object的数组,并将其转换为泛型类型。我已经将对象数组转换为类型,但如何处理Java不断给我的未检查类型错误? 这就是我目前所处的位置。 更新:我正在创建一个对象数组,然后在方法的末尾将返回类型转换为T类型。
我正在修改open JDK以添加特性,我已经遇到了两次,但没有好的解决方案。