Java 将ex list对象转换为Storm中的list

Java 将ex list对象转换为Storm中的list,java,apache-storm,Java,Apache Storm,我目前正在研究Storm 在Storm中,对于那个些你们可能不知道的人来说,它接受任何值类型并作为对象类型发出 我的问题是,我需要处理列表;应该能够通过索引访问每个项目。但无论如何,它最终都会作为对象发送 我尝试将ex list对象转换为字符串类型,通过“,”解析每个项,并将其作为计数器存储在另一个列表中。它工作得很好,但看起来很混乱 我尝试过的另一种方法是简单地将对象类型转换为列表。它没有编译错误,但新列表的大小仅为1,该列表中唯一的项是我需要转换为的ex-list对象 如何以复杂的方式将ex

我目前正在研究Storm

在Storm中,对于那个些你们可能不知道的人来说,它接受任何值类型并作为对象类型发出

我的问题是,我需要处理列表;应该能够通过索引访问每个项目。但无论如何,它最终都会作为对象发送

我尝试将ex list对象转换为字符串类型,通过“,”解析每个项,并将其作为计数器存储在另一个列表中。它工作得很好,但看起来很混乱

我尝试过的另一种方法是简单地将对象类型转换为列表。它没有编译错误,但新列表的大小仅为1,该列表中唯一的项是我需要转换为的ex-list对象

如何以复杂的方式将ex-list对象转换为list

如果这是一个幼稚的问题,我很抱歉,提前谢谢你


为了具体地通知您,下面的代码片段是必须进行转换的情况

public class TridentSpoutTest implements IBatchSpout{
    emitBatch(...) {
        List<String> list = new ArrayList<String>();
        list.add("This");
        list.add("is");
        list.add("test");

        collector.emit(new Values(list));
    }
}

public class TridentFuncTest extends BaseFunction {
    public void execute(TridentTuple tuple, TridentCollector collector){
         OrdinaryClass.put(tuple.getValueByField("data"));   
         //getValueByField returns value in Object type
    }
}

public class OrdinaryClass {
     public void put(Object o) {
         //How to convert o back to list?
     }
}
公共类TridentSpoutet实现IBatchSpout{
emitBatch(…){
列表=新的ArrayList();
列表。添加(“本”);
列表。添加(“is”);
列表。添加(“测试”);
emit(新值(列表));
}
}
公共类TridentFuncTest扩展了BaseFunction{
public void execute(TridentTuple元组、TridentCollector收集器){
OrdinaryClass.put(tuple.getValueByField(“数据”));
//getValueByField返回对象类型中的值
}
}
公共类普通类{
公开作废认沽权(对象o){
//如何将o转换回列表?
}
}

只要列表类型实现了
可序列化
就应该没有问题。让我们假设喷口发出列表,螺栓接收列表:

//Spout.nextTuple()
public void nextTuple(){

List l=new ArrayListI我很抱歉Matthias。我很高兴能试用一下你的代码片段,它在输入元组变量上运行得很好,但是它仍然不能在对象值上运行。你说“它不能在对象值上运行”是什么意思?你能用一个代码示例更新你的问题吗?具体的问题是什么?你有例外吗?我真的没有例外。当我达到包装在元组中的列表值时,与列表相关的建议方法会在eclipse上很好地弹出。相反,当我转换从元组返回的对象值时。getValueByField()要列出类型并做一些列表工作,eclipse没有显示与列表相关的建议方法。很抱歉,没有具体说明。我正在学习提问者。只是扩展了我的答案。如果使用类型
对象
,当然不能将变量用作列表:您需要使用适当的类型,即
列表
。您应该这样做通过Java教科书或编程教程,您的问题与Storm无关。您似乎是Java新手。谢谢Matthias。我希望有机会以自然的方式解决这个问题,但似乎我应该重新动手。