Storm中new Value 与input.getString(int i)

刚开始接触对着两个概念比较模糊,不明白input.gvetString(int i)中的i具体是什么的索引,看下源码就非常简单了

new Values

public class Values extends ArrayList<Object>{
    public Values() {
        
    }
    
    public Values(Object... vals) {
        super(vals.length);
        for(Object o: vals) {
            add(o);
        }
    }
}

Tuple

  public Object getValue(int i);

    
    public String getString(int i);
   
    public Integer getInteger(int i);

    public Long getLong(int i);

    public Boolean getBoolean(int i);

    public Short getShort(int i);
   
    public Byte getByte(int i);
...
...
...

就是一个往list里面add一个get的过程

 collector.emit(new Values(“test`”,"test2","test3"));

 input.getString(2)//得到的是 test3


如果:

collector.emit(new Values(“test`”,"test2","test3"));

declarer.declare(new Fields("1name","2name","3name"));

input.getStringByField("2name")//获得test2


你可能感兴趣的:(Storm中new Value 与input.getString(int i))