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”添加到核数组列表中。 我怎么能这样做?
答案 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)
现在您还使用RSTRuleList作为工厂(这不太理想:最好使用依赖注入框架,但它可以满足某些需求)
class RSTRuleList { protected ArrayList ruleList;
public RSTRule generateSimilarSentence(... params){
...
返回rstRule;
}
public addRule(... params){ ruleList.add(generateSimilarSentence(params)); } }
希望它有所帮助, 最好的祝福, Zied
答案 6 :(得分:0)
class RSTRuleList {
protected ArrayList ruleList;
public RSTRule generateSimilarSentence(... params) {
...
return rstRule;
}
public addRule( ... params ) {
ruleList.add( generateSimilarSentence(params) );
}
}
(上面答案中的代码没有格式化)
Zied