Talend - 不能在 tmap 中使用 globalMap.get()

Talend - cannot use globalMap.get() in tmap

我已经在我的 tmap 中尝试了所有可能的组合,我感到沮丧得难以置信

我像这样在 tJava 中设置我的全局变量

globalMap.put("table_id",22);

然后在组件行下,我在 tMap 的输出模式中调用全局地图

globalMap.get("table_id");

并得到以下错误

Error Line: 2539
Detail Message: Type mismatch: cannot convert from Object to int
There may be some other errors caused by JVM compatibility. Make sure your JVM setup is similar to the studio.

我试过的东西

(Integer)globalMap.get("table_id")   
((Integer)globalMap.get("table_id"))   
Integer.parseint(globalMap.get("table_id"))

任何组合都行不通,但只需输入数字 22 即可

任何帮助都将非常有帮助

您可以改用上下文变量。

步骤 1. 在 Context 中声明变量。

第 2 步。将要赋值的变量赋值。例如context.table_id=22;

第 3 步。在 tMap 组件中使用此上下文变量。

答案就在这句话中:

Type mismatch: cannot convert from Object to int

所以,这绝对是选角问题。我确定:(Integer)globalMap.get("table_id") 应该有效!

如果不行,报错信息肯定和"Type mismatch"!

不一样
  • 注1:最好使用原生组件"tSetGlobalVar"在globalMap中存储一个值

  • 注意 2:上下文变量不应在运行时动态修改,因为它们不是线程安全的(globalMap 是!)。

我同意@mhassine 的观点 (Integer)globalMap.get("table_id") 应该可以工作,但我只能使用

(int)globalMap.get("table_id")

也许这是 6.3 的一个怪癖,但是是的,无法解释它