gpt4 book ai didi

sas - 如何从 SAS Base javaobj 语句创建 java 对象数组?

转载 作者:行者123 更新时间:2023-12-04 15:44:49 26 4
gpt4 key购买 nike

我在从 SAS 声明 Java 对象时遇到了麻烦。无法设置为 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 中的所有类编写代码包装器是无效的。

最佳答案

JavaObj 不是通往动态 Java 编码的通用桥梁。它是通往具有 SAS 合适方法签名的非常简单的 Java 类的桥梁,或者更现实地说,是通往为特定角色构建的定义良好的适配器类的桥梁。

HASH 对象可能用于维护一个集合 JavaObj 引用,但这会进入相当深的水域。

对于 SAS 中的通用 java 编码,请查看 Proc GROOVY

关于 JavaObj 的 session 论文很多,搜索一下。如果你是尾声狂,试试 2005 paper “SAS® 中的 Java:JavaObj,一个数据步骤组件对象”

The design of JavaObj creates many situations that require an adapter Java class to fully exploit the features of a library.

sample code .

Java DATA Step Graphics Interface - A combination of JavaObj accessible Java classes and SAS macros that let you can create almost any type of static 2D visualization

现在您可能会改用 HTML 5 Canvas 。

关于sas - 如何从 SAS Base javaobj 语句创建 java 对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55324609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com