| j.callIntMethod("im", val); put val=; j.callDoubleMethod("dm", val); put val=; j.callStringMethod("sm", str); put str=; run; |
注:方法的返回值总是被指定为最后一个参数,例如,我们有个返回为double的方法
| public double m(double x, double y) { return x * y; }
|
那么在DATA STEP中调用该方法用下列语法
| length val1 val2 ret 8; j.callDoubleMethod("m", val1, val2, ret); |
访问类的属性和方法 访问类的静态属性和方法,我们可以使用相应的JAVAOBJ方法,例如
| import java.util.*; import java.lang.*; public class ttestc { public static double d; public static double dm() { return d; } } |
在DATA STEP中调用
| data x; dcl javaobj j("ttestc"); length d 8; j.callSetStaticDoubleField("d", 3.14159); j.callStaticDoubleMethod("dm", d); put d=; run; |
数据类型使用 java数据类型集是data step的超集,后者的主要类型是数字型和字符型,而JAVA除了包含数字型和字符型还含有如byte,char,short等类型。
当使用javaobj方法调用是所有java数字类型对应DATA STEP中的数组类型,JAVA STRING则映射到DATA STEP的字符类型(为UTF串),字符型不能被映射到data step中,且不能由java clasS返回对象到data step中(string对象除外),但是容许传送对象到java class中
|