如果我把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());
答案 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");
}
}