java编译器如何确定';方法不适用';?

java编译器如何确定';方法不适用';?,java,bounded-wildcard,Java,Bounded Wildcard,使用通配符时,某些方法(例如,ArrayList.set)无法使用,并返回类似的错误消息 类型列表中的方法集(int,capture#3-of?)不适用于参数(int,String) 我已经读到了这种情况,并想知道这是如何做到的。这就是编译器如何知道某些方法(例如,List.get(int))适用,而其他方法则不适用的原因。所有适用的规则都在。编译器将特殊标记(capture#3-of?)关联到每次出现的通配符,并使用常规的方法适用性规则() 由于通配符的捕获与其他类型和其他捕获不兼容,因此会生

使用通配符时,某些方法(例如,
ArrayList.set
)无法使用,并返回类似的错误消息

类型列表中的方法集(int,capture#3-of?)不适用于参数(int,String)


我已经读到了这种情况,并想知道这是如何做到的。这就是编译器如何知道某些方法(例如,
List.get(int)
)适用,而其他方法则不适用的原因。

所有适用的规则都在。

编译器将特殊标记(
capture#3-of?
)关联到每次出现的通配符,并使用常规的方法适用性规则()


由于通配符的捕获与其他类型和其他捕获不兼容,因此会生成“方法不适用”。

因此基本上不允许所有具有泛型参数的方法?不允许使用通配符参数化的泛型类的泛型方法/方法。从您提到的通配符的解释中很清楚-通配符表示“未知类型”,因此我们不能将任何内容作为该类型的参数传递。但是允许使用通配符参数化的返回类型,对吗?