序列不向上计数

时间:2013-07-31 13:10:08

标签: java map sequence talend

我有以下代码,它基本上会附加所有corect,但序列不会向上计数。任何想法都有错吗?

globalMap.containsKey(row1.File_Name.toUpperCase()) ?
    (String)globalMap.get(row1.File_Name.toUpperCase()) :
    (globalMap.put(row1.File_Name.toUpperCase(), row1.File_Name.toUpperCase() + 
       "-ID-" + Numeric.sequence(row1.File_Name, 1, +1).toString()) == null ?
    (String)globalMap.get(row1.File_Name.toUpperCase()) :
    (String)globalMap.get(row1.File_Name.toUpperCase())

提前感谢您的建议!

2 个答案:

答案 0 :(得分:1)

我没有看到你实际上在重复递增任何值的位置,也许这​​就是你的序列没有增加的原因。

if(globalMap.containsKey(row1.File_Name.toUpperCase())){
    (String)globalMap.get(row1.File_Name.toUpperCase())
}else{
    if((globalMap.put(row1.File_Name.toUpperCase(), row1.File_Name.toUpperCase() + 
   "-ID-" + Numeric.sequence(row1.File_Name, 1, +1).toString()) == null){
        (String)globalMap.get(row1.File_Name.toUpperCase());
    }else{
        (String)globalMap.get(row1.File_Name.toUpperCase())
    }
}

以下是if / else语句的代码。我没有编译这段代码,并且不确定它是否会编译,因为我无法轻易跟踪这些括号。

答案 1 :(得分:0)

啊,想通了 - 不得不改变真假条件,因为我想要计算相同的条件。

我猜我的大脑昨天太乱了 - 新的一天,精神焕发,完成了。

globalMap.containsKey(row1.File_Name.toUpperCase()) ?
    (globalMap.put(row1.File_Name.toUpperCase(), row1.File_Name.toUpperCase() + 
       "-ID-" + Numeric.sequence(row1.File_Name, 1, +1).toString()) == null ?
            (String)globalMap.get(row1.File_Name.toUpperCase()) :
            (String)globalMap.get(row1.File_Name.toUpperCase()) 
    ):
    (String)globalMap.get(row1.File_Name.toUpperCase())