我想检查对象是否属于所需类型,然后在其上使用getter和setter。这是我到目前为止提出的代码,有没有更好的方法呢?我尝试使用Class<< T>>对于参数但是没有给我正确的对象实例。
function msg(message: string, callback: ?Function) {
// ...
if (_.isFunction(callback)) {
callback();
}
}
更新
我在这样的代码中调用此方法: a.setSomething(a,b); 其中b的类型是ClassB,所以我无法获取B的孩子的吸气剂和孵化器。
答案 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)