有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中基于泛型类型的面向对象决策

我有一个泛型类,它有一个getOutput方法。我想根据T的类型(类类型)做出决定。我尝试了下面的方法,但不起作用

class Test<T> implements Interface1<T> {

public T getOutput(String input) {
    
     if (T instanceof Class1) {
       //do something
     } else {
       //do something else
     }
}

}

共 (1) 个答案

  1. # 1 楼答案

    我试过下面的方法。你们怎么看?如果你有更好的解决方案,请告诉我。我们也可以使用设计模式(比如策略模式)来讨论解决方案。我需要这门课以不同的形式给出答案。说字符串或整数。。。或1类或2类(例如)

    class Test<T> implements Interface1<T> {
    
    public T getOutput(String input, Class<T> type) {
        
         if (type.isAssignableFrom(String.class)) {
           //do something
           String answer = "10"; // example answer
           return type.cast(answer); 
         } else {
           //do something else
         }
    }
    
    }