我想在方法调用中提供一个接口。取决于给定的接口,该方法应该创建一个实例。为此,我使用泛型为该方法提供了不同类型的接口。这里有一个例子:
static <T> T createClient(T, String endpointAddress) {
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean()
factory.setServiceClass(T.class)
factory.setAddress(endpointAddress)
(T) factory.create() // error -> java.lang.IllegalArgumentException: java.lang.Class is not an interface
}
// AccessibleClient is an interface. call method
createClient(AccessibleClient, "http://localhost/service")
我不知道我的方法是适当的解决方案。
答案 0 :(得分:1)
你不能说T.class
- 在Java中,信息在运行时不可用。
static <T> T createClient ( Class<T> t, String endpointAddress )
{
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass( t );
factory.setAddress( endpointAddress );
return (T) factory.create();
}
createClient( AccessibleClient.class, "...");
(另外,在Java中你需要分号和return
个关键字 - 这是Groovy还是什么?)