如何将值设置为类变量的数组列表

时间:2013-08-14 12:19:47

标签: java

enter code here我是Java的新手,我有一个带有类变量“private ArrayList nucleusType”的类“RSTrule”。我想在另一个类中为这个arraylist设置值,即“RSTRules” 我使用以下代码:

   public class RSTRule{
        private ArrayList<Type> nucleusType;
}

public class RSTRules extends ArrayList<RSTRule>  {



public RSTRule generateSimilarSentence()
    {
        RSTRule rstRule=new RSTRule();
        rstRule.setNucleusType(.....)
        return rstRule;

    }

}

我有两个或三个核数组的值。例如,我想以简短的形式将“UMM”和“UMNM”添加到核数组列表中。 我怎么能这样做?

7 个答案:

答案 0 :(得分:1)

使用Arrays.asList(不知道UMM和UMNM是什么,但如下所示)

rstRule.setNucleusType(Arrays.asList(UMM, UMNM));

但是有一个棘手的部分,ArrayList创建的asList无法修改。如果您需要,有两种选择。

1:将新列表包裹在ArrayList

rstRule.setNucleusType(new ArrayList<Type>(Arrays.asList(UMM, UMNM)));

2:改变你的二传手:

public void setNucleusType(List<Type> list) {
    nucleusType.clear();
    nucleusType.addAll(list);
}

答案 1 :(得分:0)

如果有任何现有的数组列表传递它,否则创建一个新数组并向其添加元素并传递它。

  RSTRule rstRule=new RSTRule();
  List<Type> someList = new ArrayList<Type>();
  someList.add(UMM);   //remember the UMM is of type TYPE
  someList.add(UMNM);  //remember the UMNM is of type TYPE
  rstRule.setNucleusType(someList)
  return rstRule;

答案 2 :(得分:0)

你可以这样做

    RSTRule rstRule=new RSTRule();
    List<Type> list=new ArrayList<>();
    list.add(UMM);// add some thing in your Type
    rstRule.setNucleusType(list)
    return rstRule;

答案 3 :(得分:0)

ArrayList是用于以数组格式存储值的集合类。

  RSTRule rstRule=new RSTRule();
  List<Type> someList = new ArrayList<Type>();
  someList.add(Value);  
  someList.add(value);  
  rstRule.setNucleusType(someList)
  return rstRule;

答案 4 :(得分:0)

你的问题不够明确。请参阅评论并尝试澄清遗漏点。

首先需要为RSTRule类添加一个方法,以允许外部类添加到其内部列表中。类似的东西:

public class RSTRule {

    // You need to create the ArrayList first, 
    // and I suggest use interfaces as declaration when fit
    private final List<Type> nucleusType = new ArrayList<Type>(); 

    public void addType(final Type type) {
        this.nucleusType.add(type);
    }
}

我不知道...... {/ p>需要RSTRules

答案 5 :(得分:0)

  1. 避免使用类似名称RSTRule和RSTRule在您阅读程序时不实用:例如将它们称为RSTRule和RSTRuleList
  2. RSTRuleList在全球范围内是一个好主意,因为您需要根据业务案例控制列表中的内容。因此,您可以隐藏RSTRuleList中的列表
  3. 现在您还使用RSTRuleList作为工厂(这不太理想:最好使用依赖注入框架,但它可以满足某些需求)

    class RSTRuleList {   protected ArrayList ruleList;

    public RSTRule generateSimilarSentence(... params){     ...
        返回rstRule;   }

    public addRule(... params){     ruleList.add(generateSimilarSentence(params));   } }

  4. 希望它有所帮助, 最好的祝福, Zied

答案 6 :(得分:0)

class RSTRuleList { 
  protected ArrayList ruleList;

  public RSTRule generateSimilarSentence(... params) { 
    ...
    return rstRule; 
  }

  public addRule( ... params ) { 
    ruleList.add( generateSimilarSentence(params) ); 
  } 
}

(上面答案中的代码没有格式化)

Zied