首页 > 解决方案 > 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() 例如。

接口是正确的解决方案吗?如何做到这一点?谢谢!

标签: javainterfacestatic

解决方案


你可以创建一个接口,让这些类实现这个接口。然后从 switch 你可以返回这个接口。

 public static History getPerson(String p){
    switch(p){
        case "a":
            return new Person1();
        default:
            return new Person2();
    }
 }

推荐阅读