public class Foo {
public static class FooBuilder { ... }
}
我想写一个返回美孚第三类中的方法,给出Foo.FooBuilder.class
即
Foo f = x.make(Foo.FooBuilder.class, someData);
是否有可能使用声明的签名泛型可以暗示返回类型?是否有一些语言功能可以让我说“类型U是类型T的外部类”?
显然,可以指定类型扩展,或者是(分别为或U super T
)基地,一个泛型类型,但是我正在寻找U outer T
是,我认为,更比Java可以提供,甚至间接地,至少在1.7,我的目标。
到目前为止,我已经简单地声明了内部和外部类型,这些类型可行,但比我之后的定义更广泛,而且看起来也很笨拙。
public <TYPE,BUILDER> TYPE make(Class<BUILDER> builderClass, Map<String,Object> data) {
// Construct TYPE
}
有没有一种方法来推断TYPE而不明确提供模板参数?
当你有这样的问题时,很值得咨询JavaDoc。 –