繁体   English   中英

不兼容的类型:java.lang.Object无法转换为java.lang.String

[英]incompatible types: java.lang.Object cannot be converted to java.lang.String

我正在尝试通过字符串获取元组的值,但是当我这样做时,出现错误提示

 incompatible types: java.lang.Object cannot be converted to java.lang.String

这就是我正在尝试的方式。

 `  public void execute(Tuple tuple) {
  String field = tuple.getValueByField("name");

        for(String user:field.split(","))}`

我通过铸造字符串来尝试这样

String field = (String) tuple.getValueByField("name"); 

这是通过字段名称获取元组值的正确方法吗?

采用

tuple.getStringByField("name");

getStringByField用于根据列名检索值。

Apache Storm文档

Storm中Tuple.getStringByField(“ ABC”)的用途是什么

尝试改用getStringByField

如果要使用getValueByField,则需要检查(obj instanceof String)然后将其强制转换

是的,如果返回类型为字符串,那是正确的。

String field = (String) tuple.getValueByField("name"); 

请参阅示例以供参考

http://www.programcreek.com/java-api-examples/index.php?class=backtype.storm.tuple.Tuple&method=getValueByField

尝试这个...

String field = String.valueOf(tuple.getValueByField("name")); 

代替

String field = (String) tuple.getValueByField("name"); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM