如何按照通用铸造方式工作?
private <T, N> N send(final T request) {
final String serviceUrl = "someUri"
try {
return (N) webServiceTemplate.marshalSendAndReceive(serviceUrl, request);
} catch (final SoapFaultClientException e) {
}
}
当我这样称呼私人方法时:
MyReq request = new MyReq();
MyResp response = send(req);
此方法如何将此对象转换为MyResp对象? 返回类型的含义是什么意思:
&LT; T,N&gt;
答案 0 :(得分:1)
&LT; T,N&gt;
不是退货类型。 N是。
private <T, N> N send(final T request)
↑
你有&#34;选择&#34;通过传递MyReq参数键入T.在返回marshalSendAndReceive的值之前,它被转换为N类型。在你的情况下MyResp。
<T,N>
只声明此类/方法是通用的,您可以指定通用输入类型以及输出。
答案 1 :(得分:0)
该方法使用通用参数T
和N
进行参数化。它接受类型为T
的参数,并返回类型为N
的引用。
返回类型不是<T,N>
,只是N
。
答案 2 :(得分:0)
这是关于在java中使用类似于C ++模板的模板;
示例:
void add(T x, T y){
System.out.println(x+y);
}
可以使用以下任一方法调用上述函数...
add(3.0f, 4.5f);
add(2,3);
意思是,该函数适用于任何类型的参数
答案 3 :(得分:0)