Java - 如何将方法的返回类型作为参数传递?

HYB*_*R1D 3 java

我正试图用TUI做一个小游戏.TUI应该有一个get()方法,该方法应该将a String question和return类型作为参数,因此您可以使用它来请求对象.

例如,get("What is your name?", String)应该返回一个String并且get("What color do you want?", Color)应该返回一个Color.

这就是我想出来的:

public interface View {

    public <T> T get(String question, Class<T> type) throws InputException;

}

public class TUI implements View {

    public Color get(String question, Class<Color> type) {
        // code
    }

    public String get(String question, Class<String> type) {
        // code
    }

}

Color color = Game.getView().get("What piece do you want to place?", Color.class);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些方法TUI不被接受为公共实现<T> T get(String question, Class<T> type) throws InputException;.有什么方法可以做到这一点吗?

小智 6

通过拆分函数保持类型安全似乎更合适:

Color color = Game.getView().getColor("What piece do you want to place?");
String string = Game.getView().getString("What piece do you want to place?");
Run Code Online (Sandbox Code Playgroud)