这个支架是什么<&燃气轮机;你喜欢Java吗?

这个支架是什么<&燃气轮机;你喜欢Java吗?,java,generics,Java,Generics,有人能解释一下这个代码吗 public void getSupplierByZipCode( @WebParam(name = "zip", targetNamespace = "http://www.webservicex.net/") String zip, @WebParam(name = "GetSupplierByZipCodeResult", targetNamespace = "http://www.webservicex.net/", mode = We

有人能解释一下这个代码吗

public void getSupplierByZipCode(
    @WebParam(name = "zip", targetNamespace = "http://www.webservicex.net/")
    String zip,
    @WebParam(name = "GetSupplierByZipCodeResult", targetNamespace =  "http://www.webservicex.net/", mode = WebParam.Mode.OUT)
    Holder<Boolean> getSupplierByZipCodeResult,
    @WebParam(name = "SupplierDataLists", targetNamespace = "http://www.webservicex.net/", mode = WebParam.Mode.OUT)
    Holder<SupplierDataList> supplierDataLists);
public void getSupplierByZipCode(
@WebParam(name=“zip”,targetNamespace=”http://www.webservicex.net/")
拉链,
@WebParam(name=“GetSupplierByZipCodeResult”,targetNamespace=”http://www.webservicex.net/,mode=WebParam.mode.OUT)
Holder getSupplierByZipCodeResult,
@WebParam(name=“SupplierDataList”,targetNamespace=”http://www.webservicex.net/,mode=WebParam.mode.OUT)
持有人供应商数据表);
我以前从未在Java中见过
Holder
。功能中的
Holder
Holder
是什么?它们像输出吗??我需要此功能中的供应商数据列表。

请参见-整个目的是“保留值”,同时允许对其自身进行副作用修改(从而更改其“保留”的值)

可以重新分配表示包含的/保持的值的实例变量(
);这用于通过显式修改作为参数提供的保持器,促进WS-中[多个]值如何“返回”。(还要注意
webgram.Mode.OUT
的用法。)

这个“额外的层”是必需的,因为Java总是;持有者然后实际上伪造了一个指针间接寻址(让我们称之为“引用间接寻址”),就像在C中可能做的那样,这导致了语义

想象一下:

// Outside WS function - setup parameters and invoke
String zip = "98682";
Holder<Boolean> result = new Holder<Boolean>();
getSupplierByZipCode(zip, result, ..);

// Then inside the function the Holder is modified and a new value
// is assigned to it's value member.
getSupplierByZipCodeResult.value = true;

// And outside again, the mutations are visibile still
if (result.value) {
    // Yay!
}
//外部WS函数-设置参数和调用
字符串zip=“98682”;
保持架结果=新保持架();
getSupplierByZipCode(zip、结果,…);
//然后在函数内部修改保持器并生成一个新值
//已指定给其值成员。
getSupplierByZipCodeResult.value=true;
//在外面,突变仍然可见
if(result.value){
//耶!
}
由于字符串是不可变的,并且邮政编码没有包装在持有者中,因此邮政编码不能被WS-call更改(或“返回”)

另见:


但如果我想获取SupplierDataList,我如何访问它?我应该传递什么作为函数的参数?@SparshithP同样的方法;遵循
result
变量用法中给出的模板。提供一个
Holder
(因为它只是一个OUT参数,所以不必提供初始Holder值),该参数可以修改为在WS方法中“返回”一个值。然后在调用后使用
值。