今天看一个webservice接口里面有2个参数是StringHolder类型的,之前没用过这个。就在网上找了下StringHolder如何使用。大概总结了下。
StringHolder可以用在实现多个返回值,像接口要返回多个返回值。具体使用可以看下我写的这个例子:
package test;
import org.omg.CORBA.StringHolder;
public class StringHolderTest1 {
/**
* StringHolder类使用
* @param sh1
* @param sh2
*/
public void post(StringHolder sh1,StringHolder sh2){
sh1.value="实际返回值1";
sh2.value="实际返回值2";
}
/**
* 实现返回多个返回值
*/
public static void main(String[] args) {
StringHolderTest1 test=new StringHolderTest1();
StringHolder ss1=new StringHolder("初始值1");
StringHolder ss2=new StringHolder("初始值2");
test.post(ss1,ss2);
System.out.println(ss1.value);//打印出来实际返回值
System.out.println(ss2.value);//打印出来实际返回值
}
}
以下是java API里关于StringHolder的说明:
org.omg.CORBA
类 StringHolder
java.lang.Objectorg.omg.CORBA.StringHolder
-
所有已实现的接口:
- Streamable
public final class StringHolder extends Object implements Streamable
String 的 Holder。关于 Holder 文件的更多信息,请参阅“生成的文件:Holder 文件”。
String
值的 Holder 类,用来存储 IDL 操作中的 "out" 和 "inout" 参数。如果 IDL 操作签名将一个 IDL string
作为 "out" 或 "inout" 参数,则程序员必须传递一个 StringHolder
实例作为方法调用中的相应参数;对于 "inout" 参数,程序员还必须填充将被发送到服务器的 "in" 值。在方法调用返回之前,ORB 将填充与从服务器返回的 "out" 值对应的值。
如果 myStringHolder
是 StringHolder
实例,则可以使用 myStringHolder.value
访问存储在其 value
字段中的值。
-
从以下版本开始:
- JDK1.2