如何从Object参数获取类?

时间:2017-04-16 12:14:28

标签: java object

如果我把A类的对象作为someMeth(Object o)的参数,我怎样才能访问这个对象方法?我无法改变或过度someMeth(Object o)

...
void someMeth(Object o) {
     o.setS("example"); -- exception : setS() is undefined for type Object
}
...
class A {
    private String s;
    String getS () {
        return s;
    }
    void setS(String value) {
        s = value;
    }

}
...
someMeth(new A());

2 个答案:

答案 0 :(得分:2)

尝试将对象o投射到他们输入A,如下所示:

A newObj = (A) o;

然后你可以这样做:

newObj.setS("example");

或更短的单行版本:

((A)o).setS("example");

答案 1 :(得分:2)

尝试转换参考类型:

void someMeth(Object o) {
     if (o instanceof A) {
         ((A) o).setS("example");
     }
}