【发布时间】:2020-07-14 14:10:33
【问题描述】:
警告是
类型安全:List 类型的表达式需要未经检查的转换才能符合 Collection
我需要在某处进行类型转换吗?
public class ETLStepType {
public static final ArrayList<String> ETLStepTypes = (
new ArrayList<String> ((Arrays.asList(new String[] {"constant",
"append",
"insertupdate",
"tableinput",
"filterrows",
"dblookup",
"selectvalues"}))));
}
【问题讨论】:
-
Arrays.asList应该返回一个List<String>如果T被正确推断为String。尝试改用 varargs - 没有理由创建新数组 -
我不认为该代码会产生该警告。至少没有任何最新版本的普通 Java 编译器。
-
@khelwood imgur.com/a/k6Dtl9O
-
嗯,my IDE 发出的唯一警告是常量名称
ETLStepTypes不遵循命名约定。您应该遵循这些 Java 命名约定:变量名和方法名用 camelCase 写,类名用 PascalCase 写,常量用 UPPER_SNAKE_CASE 写。ETLStepTypes应该是 ~ETL_STEP_TYPES`。 -
嗯,我不止一次看到 Eclipse 内部编译器的行为在某些极端情况下与其他编译器不同。据我所知,大多数差异都涉及泛型、类型推断和可变参数。
标签: java eclipse compiler-warnings