根据Java中的条件从函数返回多个类型

时间:2018-08-28 09:33:13

标签: java

是否有一种方法可以根据Java中的条件从一个函数返回多个类型?

    /*here Object1 and Object2 are different objects created for 
    different classes*/
    public return_type function()
    {
        if(condition1)
            return Object1;
        else
            return Object2;
    }

4 个答案:

答案 0 :(得分:0)

您可以使用工厂模式。

https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

您只能返回Object,因为在Java中它是其他类的基类。或者,您可以拥有一个GeneralInterface,并且两个类都实现它。或者它可以是基类。

class ObjectFactory {
     public GeneralInterface getObject() {
           //return object depending on your condition.
           if(condition1)
               return Object1;
           else
               return Object2;
     }
}

答案 1 :(得分:0)

您应该使用对象类型,或者如果对象1和对象2扩展相同的类或实现相同的接口,则可以返回公共父对象。在代码调用方法的第一种情况下,可以使用instanceof运算符确定返回的对象类型。

答案 2 :(得分:0)

两个Object都可以从第三类扩展或实现一个接口

interface DataInterface(){
  someMethodIfNeeded();
}

然后

class Object1 implements DataInterface{...}

但是请记住,存在存在两个对象而不是一个对象的原因

答案 3 :(得分:0)

您可以创建方法返回类型Object。并检查其返回类型并在运行时进行投射。

public Object getValue(int i) {
    if (i == 1) return new Integer(1);
    else return new String("");
}

Object o = getValue(1);
if (o.getClass().isAssignableFrom(Integer.class)) {
    int result = (int) o;
} else if (o.getClass().isAssignableFrom(String.class)) {
    String result = (String) o;
}