【发布时间】:2013-01-30 07:23:20
【问题描述】:
我有这个界面,
public interface IAnything {
void m1();
void m3();
}
以及实现这个接口的两个抽象类:
public abstract class AbstractThing1 implements IAnything {
public void m1() {}
public void m3() {}
}
public abstract class AbstractThing2 implements IAnything {
public void m1() {}
public void m3() {}
}
在我的代码中的某个地方,我想调用一个 function doSomething(kindOfAbstractClass) 来执行 m1() 和 m3(),以及其他取决于 kindOfAbstractClass 的工作。
如何定义和调用doSomething()?我这样做了,但它不起作用。谢谢
private <T extends IAnything> void doSomething(T kindOfAbstractClass) {
...
kindOfAbstractClass.m1();
kindOfAbstractClass.m3();
...
}
doSomething(AbstractThing1.class);
【问题讨论】:
-
似乎只有调用
doSomething不正确。不要传递Class,而是传递两个类之一的实例。 -
但是这些类是抽象的,我没有任何实例。
-
是的,阅读@gheese 答案,您需要一个能够使用
doSomething的实例。我假设您在代码中的某个位置有一个。
标签: java interface abstract-class implements