如何在Kettle中的用户定义的Java类中创建ArrayList对象?

psr*_*psr 3 java pentaho kettle pentaho-spoon

我试图ArrayList在pentaho水壶中的用户定义的Java类对象中声明一个对象.我正在尝试一个简单的代码User Defined Java Class:

import java.util.List;
import java.util.ArrayList;

List<String> where = new ArrayList<String>();

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{    

    return true;

}
Run Code Online (Sandbox Code Playgroud)

但是当我测试这个类时,我收到一个错误:

Line 4, Column 6: Identifier expected

可能是什么问题?如果我注释掉这行List<String> where = new ArrayList<String>();代码就行了.

Ash*_*jan 6

Pentaho wiki所述 Janino,不支持泛型.

另一件需要注意的是,Janino本质上是一个Java字节码生成器,它只支持Java 1.5规范的子集.要查看功能和限制的完整列表,请访问Janino主页.在撰写本文时,最明显的限制是没有泛型.

所以,你应该使用这样一个简单的List:

List where;
Run Code Online (Sandbox Code Playgroud)

而不是使用泛型.