最近在使用java插件。用的时候发现了一些问题,比如你在使用外部引入的包的时候不能使用链式编程,否者会报错,又或者arrayList老是报错。
所以在想我能遇到这些问题。其他人也会遇到这些问题。不如把我的找到的分享出来,
问题1:java插件文本框挺难用的。习惯了idea后大家,有时候很难把一些包名,类名记全,而在java插件中需要使用?
解决方案:个人采用在idea新建一个maven项目,导入kettle-ui-swt和kettle-engine包。就像插件开发一样,所以还是不麻烦。然后写好,复制一下。可以避免大多数问题,
注:尽量避免使用链式编程如下,会出现无法运行。不信?你可以试试。
Jsoup.parse(get(Fields.In,“result”).getString®).select(split[1]).get(j)
问题2:如何在java插件生成新的行头,也就是列名。和新增一条行数据
解决方案:生成新的列名倒是不难。只要在字段里添加即可,如何给新的列赋值,就使用下面的get那行代码**。
注:新生成的列需要新的数组来装他的数据。所以可以使用new object[],创建一个新的数组,或者如下拷贝一份原先的行数据,但是不是原来的对象!然年调用putRow就可以了
Object[] outputRowData = RowDataUtil.createResizedCopy(r, data.outputRowMeta.size());
get(Fields.Out,“day”).setValue(outputRowData,“2020-6-1”);
putRow(data.outputRowMeta,outputRowData);
问题3:如何排查代码问题
解决方案:使用logBasic 打印基本日志,来排查问题。当然,只要你没catch他会给你一些提示,多少行,多少行,可是代码一多,没法一行一行的数,
其实想给个建议在java插件输入框旁边加一个行数,目前我的解决方法,在你觉得可能会出错的代码块开始结束的位置。 使用二分法。排查。大约3分钟只有就可以了。
感谢观看。