Я столкнулся с проблемой при объявлении объектов Java из SAS.Нет никакого способа установить в качестве параметра массив объектов Java или создать объект массива.
data _NULL_;
/*With primitive types work well */
declare javaobj jArr("java.util.Arrays");
array primeNum{3} (15, 2, 3);
jArr_rc1=jArr.callStaticVoidMethod("sort", primeNum);
/* For example, try to create array from some javaobjs */
declare javaobj num1("java.lang.Integer","15");
declare javaobj num2("java.lang.Integer","2");
declare javaobj num3("java.lang.Integer","3");
array Num{3} (num1,num2,num3);
/* ERROR: Cannot create an array of objects. */
/* ERROR: DATA STEP Component Object failure. Aborted during the COMPILATION phase. */
/*In my project I've tried different ways: */
/* ...callStaticVoidMethod("FuncFromStandartClass",[num1,num2,num3]); */
/* ...callStaticVoidMethod("FuncFromStandartClass",{num1,num2,num3}); */
/* This code also didn't work*/
/*declare javaobj numArr("java.lang.Integer[]","3","4");*/
run;
Я понимаю, что в отдельных случаях я должен создать код Java-оболочки, который будет проходить через только примитивы API,Но это не всегда возможно.И писать код-упаковщик для всех нужных вам классов Java неэффективно.