如何检查所需的类是否具有所需的方法

时间:2015-01-07 13:13:48

标签: java

例如,请考虑以下代码:

public class Stat<E> {
    // any data
    // lalala
    public void do_smt(E any_ob) {
        // if (any_ob has some method)
    }
}

public void do_smt(...)中我需要检查作为参数传递的对象是否有某种方法
我认为接口可能会派上用场,但我不知道如何做到这一点 请详细解释...... 提前致谢

1 个答案:

答案 0 :(得分:5)

请考虑以下代码:

public interface SomeInterface {
    void someMethod();
} 

public class Stat<E extends SomeInterface> {
    // any data
    // lalala
    public void do_smt(E any_ob) {
        // This is safe since you force E to implement SomeInterface
        any_ob.someMethod(); 
    }
}

作为参数传递的对象属于E类型,但您也强制它在声明SomeInterface中为<E extends SomeInterface>类型。因此,您可以安全地将其用作SomeInterface类型。

此外,如果实现接口,则必须实现其方法:

public class SomeClass implements SomeInterface {

    @Override
    public void someMethod() {
        // Must be implemented - otherwise you get compiler errors
    }
}

这个article以简单明了的方式解释了Java接口。