我发现了这个问题:Member variable which must extend class A and implement some interface
想知道有没有更好的方法。将它作为参数传递到方法中是可行的:
public <T extends Activity & IMyInterface> void start(T _callback) {
callback = _callback;
}
但是如何正确地将 callback
声明为属性呢?这:
Class<? extends Activity & IMyInterface> callback;
给出语法错误。
最佳答案
问题是 T 不是 Class 的实例,您可以将其声明为:
Object callback;
MyType callback;
MyInterface callback;
或者您可以像这样将您的类定义为通用类:
public class Example<T extends MyType & MyInterface>{
T callback
}
关于java - 声明一个既扩展类又实现接口(interface)的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23427902/