WebParam.Mode.OUT类型对象与Holder 对象
今天同事用webservice调用接口的时候,发现了一种参数, WebParam.Mode.OUT类型的参数,百度得知“如果指定 WebParam.Mode.OUT 或 WebParam.Mode.INOUT,则该参数的数据类型必须为 Holder 或扩展 Holder”;
由于 Java 不支持输出参数,因此方法通常限制为返回单个值。但是,在许多情况下,一个方法返回多个值更为有用。在这些情况下,API 使用 Holder 对象。Holder 对象包含一个名为 value 的单个成员变量。 Holder 对象没有任何方法。
Holder 对象是使用单个变量创建的对象。这些对象随后可传递到设置该变量的方法。方法返回时,可以检索变量的值。
具体介绍看转载:
https://www.ibm.com/support/knowledgecenter/zh/SSS28S_8.2.1/API/api_reference_holder_objects_java-filter_java.html
下面是我的例子:一看就懂了
public static void main(String[] args) { StringHolder name = new StringHolder(); name.value = "555555555"; change(name); System.out.println(name.value); } public static StringHolder change(StringHolder old) { String newName = old.value; newName = newName+"6666666"; old.value = newName; return old; }
输出结果:5555555556666666