Java 从另一个类创建泛型类对象

Java 从另一个类创建泛型类对象,java,oop,generics,Java,Oop,Generics,我有课 class Sample<T>{ //Implementation } 类示例{ //实施 } 我想从另一个clas创建该类的对象。下面的代码示例有效 class SampleManager{ public static <R> Sample<R> getInstance(){ return new Sample<R>(); } } 类样本管理器{ 公共静态示例getInstance(){ 返回新样本();

我有课

class Sample<T>{
//Implementation
}
类示例{
//实施
}
我想从另一个clas创建该类的对象。下面的代码示例有效

class SampleManager{
   public static <R>  Sample<R> getInstance(){
      return new Sample<R>();
   }
}
类样本管理器{
公共静态示例getInstance(){
返回新样本();
}
}
但是我想把这个类作为一个参数来传递。像

class SampleManager{
   public static  Sample getInstance(Class clazz){
      return new Sample<clazz>;
   }
}
类样本管理器{
公共静态示例getInstance(类clazz){
退回新样品;
}
}

我怎样才能做到这一点?是否有其他方法可以实现此目的?

您的第二个示例不应编译,返回类型丢失。你想要的是:

public static <R> Sample<R> getInstance(Class<R> clazz) {
    return new Sample<R>();
}
公共静态示例getInstance(类clazz){
返回新样本();
}

使用Java 8,您还可以返回
new Sample()

Sample
中如何使用泛型类型?可能是这样:
public static getInstance(T witness){return new Sample()}
?类clazz表示原始类型。你的意思可能是
Class clazz
too@Thilo我也这么想;但是
witness
将如何使用呢?这有点不合情理……是的;所以我认为真正的问题是:你到底想做什么?但是当它从未在这个方法中使用时,这个论点的意义是什么?我也考虑过这个想法,但我发现它非常可疑。@GhostCat:如果没有关于示例(以及甚至没有编译的代码)的任何信息,很难说什么是有意义的。我想,
clazz
刚刚通过,因为OP不知道怎么做。我认为,在这个答案中,您应该删除未使用的
clazz
参数。@Stefan谢谢。我在寻找getInstance(类clazz)而不是getInstance(类clazz)。这对我有用。