2014-04-25 28 views
2

我有这样的事情:如何使用接口的方法,只有当类实现它?

public interface MyInt { 
    public void doStuff(); 
} 

public extends SomeClass { 
    // Some methodes 
} 

然后,我想我的扩展类SomeClass的。现在这些子类中的一些可以实现MyInt,因此我想要这样做:

List<SomeClass> list = new ArrayList<>(); 
// Then we put stuff in list 
for (SomeClass s : list) 
    if (s instanceof MyInt) 
    s.doStuff(); 

但它不起作用。只有后者由当前类实现时,如何才能使用接口提供的方法?

祝您有愉快的一天。

+1

_but不work._怎么来的? –

回答

1

你缺少强制转换到该接口,以调用其方法:

for (SomeClass s : list) 
    if (s instanceof MyInt) 
    ((MyInt) s).doStuff(); 
+0

好的,谢谢,我试图施放,但与括号混淆: (MyInt)s.doStuff(); –

相关问题