java - java方法可以返回不同的对象吗?
问题描述
假设我有两个类 Person1 和 Person2,它们实现了接口 History。我想在 History 接口中有一个静态方法,它根据这样的字符串返回 Person1 或 Person2:
public static Object getPerson(String p){
switch(p){
case "a":
return new Person1();
default:
return new Person2();
}
}
我这里没有任何错误。但是如何在另一个类中使用它,以便从 Person1 或 Person2 获取方法?我试图这样做:
Object env = IEnvironment.getPerson(clientEnv);
但我不能写 env.myMethod() 例如。
接口是正确的解决方案吗?如何做到这一点?谢谢!
解决方案
你可以创建一个接口,让这些类实现这个接口。然后从 switch 你可以返回这个接口。
public static History getPerson(String p){
switch(p){
case "a":
return new Person1();
default:
return new Person2();
}
}
推荐阅读
- android - 单击android上的Firebase通知时如何使用Web浏览器?
- azure - Azure Service Fabric 与 Azure Service Fabric Mesh
- python-3.x - 为什么我的脚本可以在我的计算机上运行,但是当托管在我的树莓派中时,它会不断抛出编码/解码错误?
- c# - 如何从 wpf c# 中的 rect 获取数据?
- google-sheets-api - 如何使用 google sheet rest api 获取单元格背景颜色?
- macos - 如何通过鼠标打开显示在 iterm2 上的文件的工作目录?
- c# - 如何在c#中的lambda表达式中查找数组中元素的索引
- python - 为什么我不能打印所有两个字符长的行?
- c# - Viewmodel 失去了一些它的价值
- javascript - 具有浮点值的 Html 属性“Max”会出现问题