繁体   English   中英

Java:如何根据值返回不同的对象/数据类型

[英]Java: How to return different Object/datatype based on value

Java:需要根据给定值返回多个对象。

NewClass tes = new NewClass();

Object[][] obj ={{}};

示例:如果浏览器是 chrome 返回 TestClass,如果它的 IE 浏览器返回 Obj

public <T extends Object> T getValue(String browser){

switch(browser):
case "Chrome": return tes;
case "IE": return obj;

}

在 Java 中,是否可以在单个方法中返回不同的对象类型。

注意:需要为 50 个方法做,因此尝试根据给定的浏览器类型找到返回对象的选项。

我建议你看看工厂设计模式。 您将在不公开创建逻辑的情况下创建对象。

这是我的解释。 不知道是不是你要实现的。


public enum BrowserType {
    CHROME, SAFARI, IE
}

//Browser is the parent class of all browser instances and it will also contain the common logic applicable for creating all types
public abstract class Browser {

    public Browser(BrowserType model) {
        this.model = model;
        arrangeParts();
    }

    private void arrangeParts() {
        // Do one-time processing here
    }

    // Do subclass level processing in this method
    protected abstract void construct();

    private BrowserType model = null;

    public BrowserType getModel() {
        return model;
    }

    public void setModel(BrowserType model) {
        this.model = model;
    }
}

//    Safari is a concrete implementation of Browser type SAFARI
public class Safari extends Browser {

    Safari() {
        super(BrowserType.SAFARI);
        construct();
    }

    @Override
    protected void construct() {
        System.out.println("SAFARI BROWSER LOADED");
        // add accessories
    }
}

//    IE is concrete implementation of Browser type IE
public class IE extends Browser {

    IE() {
        super(BrowserType.IE);
        construct();
    }

    @Override
    protected void construct() {
        System.out.println("IE BROWSER LOADED");
        // add accessories
    }
}

//BrowserFactory.java is our main class implemented using factory pattern. It instantiates a browser instance only after determining its type.
public class BrowserFactory {
    public static Browser buildBrowser(BrowserType model) {
        Browser browser = null;
        switch (model) {
            case IE:
                browser = new IE();
                break;

            case SAFARI:
                browser = new Safari();
                break;

            case CHROME:
                browser = new Chrome();
                break;

            default:
                // throw some exception
                break;
        }
        return browser;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM