如何在Java中获得静态绑定类?

时间:2017-12-14 10:39:36

标签: java method-overriding dynamic-binding dynamic-dispatch static-binding

class E extends B {}
class B extends A {}

我们有,

B v = new E();
process(v);

我们知道这是真的,

v.getClass() == E.class

有没有办法告诉v的静态绑定是否是编程上的B?

编辑:   最初的想法是对重载方法进行一行检查。   像,

   process(A a) {
     // ... code for a.processABC();
     if (a.getStaticBindingClass() == B.class) { // not a subclass of B
        // Additional logic for statical binding case.
         ... 
     }
     // ... code for a.processDEF();
   }

可以引入过程(B b);但是,有很多来自流程(A a)的复制代码。

0 个答案:

没有答案