如何解决:使用 T 本身时,参数从不与 T 类型一起使用?
How to resolve: parameter never used with T type while T itself is used?
我在使用参数类型 (T) 而不是参数值本身的通用方法中遇到 Java 警告(“从未使用过参数 myParameter”)。我可以不使用 SuppressWarnings 注释来避免此警告吗?
private <T extends MyInterface> MyGenericObject<T> init(Class<T> myParameter) {
// lots of common code here ... and:
return new MyGenericObject<T>();
}
目前我使用这个方法的方式:
MyGenericObject<MyClassA> aInstance = init(MyClassA.class);
MyGenericObject<MyClassB> bInstance = init(MyClassB.class);
也许必须有一种方法可以只将类型不带参数传递给我的方法,但我找不到方法。你能帮我解决一下吗?
where I use type of the parameter (T)
但你不需要myParameter
为你提供T
。没有它它也能正常工作:
private <T extends MyInterface> MyGenericObject<T> init() {
// lots of common code here ... and:
return new MyGenericObject<T>();
}
// and invoke like:
MyGenericObject<MyClassA> aInstance = init();
MyGenericObject<MyClassB> bInstance = init();
类型参数并不是您真正使用的“东西”。这只是编译器的一条指令,以确保所有引用 T
的类型都是兼容的。
我在使用参数类型 (T) 而不是参数值本身的通用方法中遇到 Java 警告(“从未使用过参数 myParameter”)。我可以不使用 SuppressWarnings 注释来避免此警告吗?
private <T extends MyInterface> MyGenericObject<T> init(Class<T> myParameter) {
// lots of common code here ... and:
return new MyGenericObject<T>();
}
目前我使用这个方法的方式:
MyGenericObject<MyClassA> aInstance = init(MyClassA.class);
MyGenericObject<MyClassB> bInstance = init(MyClassB.class);
也许必须有一种方法可以只将类型不带参数传递给我的方法,但我找不到方法。你能帮我解决一下吗?
where I use type of the parameter (T)
但你不需要myParameter
为你提供T
。没有它它也能正常工作:
private <T extends MyInterface> MyGenericObject<T> init() {
// lots of common code here ... and:
return new MyGenericObject<T>();
}
// and invoke like:
MyGenericObject<MyClassA> aInstance = init();
MyGenericObject<MyClassB> bInstance = init();
类型参数并不是您真正使用的“东西”。这只是编译器的一条指令,以确保所有引用 T
的类型都是兼容的。