Java泛型 - 对象实例化

时间:2016-09-06 06:17:02

标签: java object generics instance

我想检查对象是否属于所需类型,然后在其上使用getter和setter。这是我到目前为止提出的代码,有没有更好的方法呢?我尝试使用Class<< T>>对于参数但是没有给我正确的对象实例。

function msg(message: string, callback: ?Function) {
   // ...
   if (_.isFunction(callback)) {
      callback();
   }
}

更新

我在这样的代码中调用此方法: a.setSomething(a,b);  其中b的类型是ClassB,所以我无法获取B的孩子的吸气剂和孵化器。

1 个答案:

答案 0 :(得分:0)

根据您的代码,我假设//getters and setters here代码获取ClassB实例的属性并设置ClassA实例的属性(反之亦然)。

例如,如果目标是从ClassB获取值并在ClassA中设置它们,则可以使用assign层次结构中的ClassA方法实现此目的:

public class ClassA {
    public void assign (ClassB b)
    {
        setSomeAProperty (b.getSomeBProperty());
        ... 
    }
}

然后,您可以在ClassA

的子类中覆盖该方法
public class ChildA1 extends ClassA {
    public void assign (ClassB b)
    {
        super.assign(b);
        if (b instanceof ChildB1) {
            ChildB1 b1 = (ChildB1) b;
            setSomeA1Property(b1.getSomeB1Property());
            ...
        }
    }
}

然后拨打setSomething

,而不是a.assign(b)