これがどのように機能するのか理解できません
public void addToRule(Rule r) {
if (!getRuleList().contains(r)) {
getRuleList().addElement(r);
}
}
このコードを実行すると:
obj.addToRule(r);
System.out.println(getRuleList().contains(r));
どのようにこれが起こるtrue
ことができますか?
ところで、ruleList はメイン クラスのベクトル メンバーであり、静的変数ではありません (これは問題ではないと思いますが、とにかく共有します)。
import java.util.Vector;
public class RuleEngine{
private Vector ruleList = new Vector();
public Vector getRuleList(){
return ruleList;
}
public void addToRule(Rule r){
if(!getRuleList().contains(r))
getRuleList().addElement(r);
}
public static void main(String args[]){
RuleEngine re = new RuleEngine();
Rule r = new Rule("Rule1");
re.addToRule(r);
System.out.println(re.getRuleList().contains(r));
}
}
class Rule{
public String name = "";
public Rule(String nam){
this.name=nam;
}
}
OK の人々は、Java での参照による受け渡しのためにこれが機能すると私に言いました。わかった。しかし、参照ではなくそのオブジェクトのコピーを取得するにはどうすればよいでしょうか?