Java "error: incompatible types: inference variable E has incompatible bounds" error

Java "error: incompatible types: inference variable E has incompatible bounds" error

所以我正在 java 尝试一些东西。 (锻造我的世界 mod)。当我编译时,我不断收到此错误:

error: incompatible types: inference variable E has incompatible bounds
    return Lists.newArrayList((Object[])new String[] { "clickset" });
                             ^
    equality constraints: String
    lower bounds: Object
  where E is a type-variable:
    E extends Object declared in method <E>newArrayList(E...)

密码是:

public List<String> getCommandAliases() {
    return Lists.newArrayList((Object[])new String[] { "clickset" });
}

那条线很明显被破坏了:它调用了 Lists.newArrayList,这大概是 guava 的 Lists 实用程序 class(是否有 import com.google.common.collect.*.Lists在顶部?那么,是的)。即使不是,这个名字也表明了意图。

您将此方法交给 Object[](因为转换)。显然,这意味着它将 return 一个 List<Object>。但是,您的方法必须 return a List<String>。因此,它不会出错。

此代码现在无效,以后也不会。

如果您希望它起作用,请删除 (Object[]),我不知道是谁添加的,也不知道为什么添加的。可能这是通过反编译某些 class 文件生成的代码。对于那些实际上不完全有效的人来说,这是非常普遍的。如果您对超过几页的代码执行此操作,这只是大约 149495581 个进一步错误中的第一个。