我有以下的类和接口的Java:变量需要类和接口
interface R
class A extends Component implements R
class B extends JButton implements R
class C extends JPanel implements R
class D extends xyz (that extends Component) implements R
所以我有几类,所有扩展某种成分的(或多或少直接),并且都实现R.
于是我有了一个需要这样的工作变量和方法不同等级F:
public class F {
public TYPE myVariable;
public myMethod void (TYPE argument) {
//...code...
myVariable = argument;
actionThatRequiresComponent(argument);
argument.actionDefinedInR();
//...code...
}
public anotherMethod void() {
//...code...
myMethod(myVariable);
//...code...
}
}
的问题是,这种类型必须满足两个质量要求:它是T o是任何类型的组件,并且必须实现接口R.因此该变量具有相同的要求。
我不确定采取哪种方法?我应该做一些扩展Component的抽象类,实现R?我应该跳过接口R的需求,并试着用try catch吗?我可以使用泛型类吗?当涉及到变量时,我该怎么做? 有什么建议吗?
您是否尝试过声明的泛型类型'T'的''? –
khelwood
我不明白。 –
“action”定义来自哪里?它是“R”的一部分吗?如果是这样,是'R'通用接口? – RealSkeptic