类对象中的Java参数化类型

类对象中的Java参数化类型,java,generics,Java,Generics,假设我有一个名为Foo的类,具有泛型类型 public class Foo<T> { ... 有没有办法将Class clazz参数传递到createFoo中,以便我可以创建Foo 公共类工厂{ 公共静态Foo createFoo(类clazz){ 返回新的Foo(); } } 使createFoo工厂方法通用: public static <T> Foo<T> createFoo(Class<T> clazz) { return new

假设我有一个名为Foo的类,具有泛型类型

public class Foo<T> { ...
有没有办法将
Class clazz
参数传递到
createFoo
中,以便我可以创建
Foo

公共类工厂{
公共静态Foo createFoo(类clazz){
返回新的Foo();
}
}

使
createFoo
工厂方法通用:

public static <T> Foo<T> createFoo(Class<T> clazz) {
    return new Foo<T>();
}

createFoo
工厂方法设置为通用:

public static <T> Foo<T> createFoo(Class<T> clazz) {
    return new Foo<T>();
}

createFoo
工厂方法设置为通用:

public static <T> Foo<T> createFoo(Class<T> clazz) {
    return new Foo<T>();
}

createFoo
工厂方法设置为通用:

public static <T> Foo<T> createFoo(Class<T> clazz) {
    return new Foo<T>();
}

只需将
createFoo
函数设置为通用:

public static <T> Foo<T> createFoo() {
    return new Foo<>();
}
publicstaticfoo-createFoo(){
返回新的Foo();
}
返回类型为
Foo
的实例,并对任何类型
T
执行此操作。这可以通过在方法签名的开头写入
来表示,该签名将
T
声明为一个新的类型变量,指定
createFoo()
是一个泛型方法


签出:

只需将
createFoo
函数设置为通用:

public static <T> Foo<T> createFoo() {
    return new Foo<>();
}
publicstaticfoo-createFoo(){
返回新的Foo();
}
返回类型为
Foo
的实例,并对任何类型
T
执行此操作。这可以通过在方法签名的开头写入
来表示,该签名将
T
声明为一个新的类型变量,指定
createFoo()
是一个泛型方法


签出:

只需将
createFoo
函数设置为通用:

public static <T> Foo<T> createFoo() {
    return new Foo<>();
}
publicstaticfoo-createFoo(){
返回新的Foo();
}
返回类型为
Foo
的实例,并对任何类型
T
执行此操作。这可以通过在方法签名的开头写入
来表示,该签名将
T
声明为一个新的类型变量,指定
createFoo()
是一个泛型方法


签出:

只需将
createFoo
函数设置为通用:

public static <T> Foo<T> createFoo() {
    return new Foo<>();
}
publicstaticfoo-createFoo(){
返回新的Foo();
}
返回类型为
Foo
的实例,并对任何类型
T
执行此操作。这可以通过在方法签名的开头写入
来表示,该签名将
T
声明为一个新的类型变量,指定
createFoo()
是一个泛型方法


签出:

我想您可以不使用此解决方案的
Class clazz
参数,对吗?您甚至需要提供
Class
作为参数吗?我总是忘记这个推论到底有多聪明。我认为
fooa=createFoo()应该可以工作。或者干脆
foodfactory。createFoo()
非常正确,不需要使用
clazz
。@TomG或
Foo-iFoo=FooFactory.createFoo()
编译器将为
T
推断
Integer
的位置。我想这个解决方案不需要
clazz
参数,您可以吗?您甚至需要提供
Class
作为参数吗?我总是忘记这个推论到底有多聪明。我认为
fooa=createFoo()应该可以工作。或者干脆
foodfactory。createFoo()
非常正确,不需要使用
clazz
。@TomG或
Foo-iFoo=FooFactory.createFoo()
编译器将为
T
推断
Integer
的位置。我想这个解决方案不需要
clazz
参数,您可以吗?您甚至需要提供
Class
作为参数吗?我总是忘记这个推论到底有多聪明。我认为
fooa=createFoo()应该可以工作。或者干脆
foodfactory。createFoo()
非常正确,不需要使用
clazz
。@TomG或
Foo-iFoo=FooFactory.createFoo()
编译器将为
T
推断
Integer
的位置。我想这个解决方案不需要
clazz
参数,您可以吗?您甚至需要提供
Class
作为参数吗?我总是忘记这个推论到底有多聪明。我认为
fooa=createFoo()应该可以工作。或者干脆
foodfactory。createFoo()
非常正确,不需要使用
clazz
。@TomG或
Foo-iFoo=FooFactory.createFoo()编译器将为
T
推断
整数的位置。