我需要使用关键字Object作为返回类型,在单个方法中返回不同类的对象
public class ObjectFactory {
public static Object assignObject(String type) {
if(type.equalsIgnoreCase("abc")){
return new abcClass();
} else if(type.equalsIgnoreCase("def")) {
return new defClass();
} else if(type.equalsIgnoreCase("ghi")) {
return new ghiClass();
}
return null;
}
}
在另一堂课中,我试图将对象
public class xyz{
public void get(){
Object obj=(abcClass)ObjectFactory.assignObject("abc");
}
}
如何使用obj对象访问abcClass中的方法?
最佳答案
如果assignObject
返回的实例不是abcClass
,则当前代码将引发异常,因此您可以将obj
的类型更改为absClass
:
public void get(){
abcClass obj=(abcClass)ObjectFactory.assignObject("abc");
}