我正在使用 Java AST (JDT),并且必须添加 org.eclipse.jdt.core.dom.Type
原始列表(Java 5 之前的代码)的实例,该列表仅包含 Type
类型的元素(API 保证了这一点)。我使用 TypeDeclaration.superInterfaceTypes()
访问列表因为类(class)怎么样TypeDeclaration
是这样写的( super 接口(interface)类型没有setter),我必须直接添加元素,不能简单地创建一个 List<Type>
例如,复制元素,添加新元素,然后设置新列表。因此我最终得到了编译器警告。
这是我当前的代码:
@SuppressWarnings("unchecked")
private void changeSuperInterface(TypeDeclaration declaration) {
// some code...
Type newInterface = ast.newSimpleType(ast.newName(name));
declaration.superInterfaceTypes().remove(oldInterface);
declaration.superInterfaceTypes().add(newInterface); // Type safety warning here.
}
我可以用比仅仅抑制警告更优雅的解决方案来解决这个问题吗?
最佳答案
在您的项目属性或工作区首选项中 Java (>) 编译器 > 错误/警告,通用类型 检查忽略由于原始 API 导致的不可避免的泛型类型问题。
关于java - 安全地将对象添加到无法设置的原始列表中(Java AST),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45493229/