Java 泛型到变量

标签 java generics

java泛型如何分配给变量然后传递它? 我不想这样做:

MyClass myClass = new MyClass();

if (someCondition) {
    myClass.<Foo>getDetails();
} else if (someCondition) {
    myClass.<Bar>getDetails();
} ... more conditional objects

我怎样才能做到这一点:

MyClass myClass = new MyClass();
JavaGeneric jg;
if (someCondition) {
   jg = Foo;
} else if (someCondition) {
   jg = Bar;
}

myClass.<jg>getDetails();

这可能吗?我尝试搜索有关 java generics 的文档但没有这样的示例或如何将其分配给变量,他们只有将其传递到 method/class (T) 的示例.

更新:

getDetails()位于 object :

public class MyClass {
   <T> void getDetails() {
      //call method that uses T...
   }
}

最佳答案

interface JavaGeneric {
public String getDetails(); //also you can have default methods implementation here.
}

class Foo implements JavaGeneric {
 public String getDetails(){
   return "Foo Details";
 }
}


class Bar implements JavaGeneric {
 public String getDetails(){
   return "Bar Details";
 }
}


// Somewhere in code

JavaGeneric jg;
if (someCondition) { //lets say this is false
   jg = Foo;
} else if (someCondition) { // lets say this is true
   jg = Bar;
}

jg.getDetails(); //we will get "Bar Details"

关于Java 泛型到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418546/

相关文章:

java - 使用泛型时复合模式的可扩展性

java - 改造 - 解压 gzip

java - 在 JasperReport 中创建/传递 Java bean 数据源

java - Seam Framework 中的非法状态异常

delphi - 在 Delphi 中强制转换泛型安全吗?

java - 为什么允许 `T extends String`但给出警告?

java - GWT - 如何创建下拉菜单

java - 并行 flatMap 总是顺序的

c# - 按本地化排序列表

c# - 通用转换类型不足以正确检索 "new"属性