Java 避免未检查的编译器警告

Java 避免未检查的编译器警告,java,generics,unchecked,Java,Generics,Unchecked,我有一个无法更改的API: public interface A<T> { void onClick(T widget); } public interface B<T> { void use(A<T> a); } public interface C { B<?> apply(); } 公共接口A{ void onClick(T小部件); } 公共接口B{ 无效使用(A); } 公共接口C{ B应用(); } 我有一个c对象的实

我有一个无法更改的API:

public interface A<T> {
  void onClick(T widget);
}
public interface B<T> {
  void use(A<T> a);
}

public interface C {
  B<?> apply();
}
公共接口A{
void onClick(T小部件);
}
公共接口B{
无效使用(A);
}
公共接口C{
B应用();
}
我有一个c对象的实例c,我需要调用apply(),然后对结果调用use(),并提供一个匿名内部类型。以下是我尝试过的:

B<Object> b = (B<Object>) c.apply();
b.use(new A<Object>() {
   onClick(Object o) {
   }
 });
bb=(B)c.apply();
b、 使用(新的A(){
onClick(对象o){
}
});
这是可行的,但会产生未经检查的警告。有可能避免吗


谢谢

答案被标记为重复答案,但我看不出重复答案(我在创建自己的答案之前已经看过)是如何回答我的问题的(它只是笼统地谈论泛型,但没有问我确切的问题)。。。这是否意味着我无法逃避警告?显然,在未检查的警告上有一个完整的标签,在泛型上有另一个标签,很遗憾我不能问自己的问题,我仍然不知道如何处理我的代码:(.理想情况下,重新整理泛型,以便具有一致的返回类型。例如,您可以有一个
C
。@chrylis感谢您的回答。但是,正如我在问题中提到的,C不是泛型对象,它是API的一部分,我无法更改它