java - 安全地将对象添加到无法设置的原始列表中(Java AST)

标签 java eclipse generics eclipse-jdt raw-types

我正在使用 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/

相关文章:

ios - 函数中具有相互递归关联类型约束的 Swift 协议(protocol)

java - Wildfly 17 : "User-specified log class ' org. apache.commons.logging.impl.Log4JLogger'找不到或无法使用。”使用commons-configuration2

java - Android读取文本文件并拆分

java - Intellij 中的 Cassandra 插件

android - OpenCV Android eclipse设置示例工程报错

android - 当我在函数中使用它时,音频文件不播放

java - 创建初始索引时 Hibernate Search 失败

java - 在 Linux 上使用 javac 重现 Eclipse JAR 导出

c# - 是否可以在继承的静态方法中检测类上下文?

c++ - std::istream::read 的通用形式?