使用类型为 <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;