为了减少类的依赖性,我想将参数(使用泛型类)发送到扩展某些类并实现接口的构造函数,例如
public interface SomeInterface{ public void someMethod(); } public class MyFragment extends Fragment implements SomeInterface{ //implementation } //here is classs, that I need to create. T must extend Fragment and implements //SomeInterface. But, I'm afraid, if I'll use MyFragment directly, it will create a //dependence of SomeClass from MyFragment. public class SomeClass /*generic?*/ { public SomeClass(T parent); }
可能吗?
此外,使用T类,我想使用T.getActivity()作为Context创建视图。
T必须扩展Fragment并实现SomeInterface
在这种情况下,您可以声明SomeClass以下内容:
SomeClass
public class SomeClass<T extends Fragment & SomeInterface>
这将需要T扩展Fragment和实现类型的对象SomeInterface。
T
Fragment
SomeInterface
我不熟悉Android,但如果getActivity()在中声明了公共实例方法,Fragment则完全有可能在的实例上调用它T,因为编译器将知道所有都T必须继承该方法。
getActivity()