使用类型为 <T> 的 ContextInjectionFactory
Using ContextInjectionFactory with Type <T>
在不生成类型安全警告的情况下使用 DependencyInjection / ContextInjectionFactory 的正确方法是什么?
public class MyClass<T> {...}
// Without Dependency Injection
MyClass<MyType> x = new MyClass<MyType>();
// With Dependency Injection and TypeSafety warning
MyClass<MyType> x = ContextInjectionFactory.make(MyClass.class, context);
您可以使用通配符来避免生成类型安全警告:-
MyClass<?> x = ContextInjectionFactory.make(MyClass.class, context);
您将不得不使用通用通配符 <?>
。
MyClass<?> x = ContextInjectionFactory.make(MyClass.class, context);
这将删除警告,但所有通用方法将仅适用于 Object
。解决此问题的一种方法是将 x
转换为 MyType
.
MyClass<MyType> myClass = (MyClass<MyType>) x;
在不生成类型安全警告的情况下使用 DependencyInjection / ContextInjectionFactory 的正确方法是什么?
public class MyClass<T> {...}
// Without Dependency Injection
MyClass<MyType> x = new MyClass<MyType>();
// With Dependency Injection and TypeSafety warning
MyClass<MyType> x = ContextInjectionFactory.make(MyClass.class, context);
您可以使用通配符来避免生成类型安全警告:-
MyClass<?> x = ContextInjectionFactory.make(MyClass.class, context);
您将不得不使用通用通配符 <?>
。
MyClass<?> x = ContextInjectionFactory.make(MyClass.class, context);
这将删除警告,但所有通用方法将仅适用于 Object
。解决此问题的一种方法是将 x
转换为 MyType
.
MyClass<MyType> myClass = (MyClass<MyType>) x;