我正在使用streambase,并创建了一个映射将传入的整数(0-255)转换为字符代码。现在,我正在使用手动if/else语句。例如:
if (message_code == '106') then
message_code = 'J'
else if (message_code == '110') then
message_code= 'N'但是,我只想更广泛地使用这个。据我所知,搜索Streambase帮助并没有真正提供任何信息。我知道这可以在Java中完成,但可能需要调用java外部函数。我在这方面不是很能干,所以有点迷路了。
在StreamBase中有更好的方法来做到这一点吗?
发布于 2015-10-06 20:50:05
初步调查证实,StreamBase表达式语言或内置函数没有明显的方法将表示ASCII字符值的into转换为对应于ASCII值的单字符字符串。如果我稍后发现了一些不明显的技巧,我会回来编辑这个答案。
我肯定不会使用255子句如果/然后/else表达式!
我可能会使用Java函数,下面是一个简单测试的示例:
package example;
public class ASCIIIntToString {
public static String ASCIIToString(Integer a) {
if (a == null || a < 0 || a > 255) {
return null;
} else {
return Character.toString((char) (int) a);
}
}
}要放到sbd.sbconf中的自定义函数声明如下所示:
<custom-functions>
<custom-function alias="ASCIIToString"
args="auto"
class="example.ASCIIIntToString"
language="java"
name="ASCIIToString"
type="simple"/>
</custom-functions>但是,如果您不想进入Java并停留在EventFlow中,那么就想到了两个方法:
披露/免责声明:我是TIBCO软件公司的员工。这里表达的意见是我自己的,而不是TIBCO的。
https://stackoverflow.com/questions/32955832
复制相似问题