1

enter code here私はJavaが初めてで、クラス変数「private ArrayList nucleusType」を持つクラス「RSTrule」を持っています。別のクラス、つまり「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;

    }

}

nucleus 配列に 2 つまたは 3 つの値があります。たとえば、核配列リストに「UMM」と「UMNM」を短い形式で追加したい。どうやってやるの?

4

7 に答える 7

1

使用Arrays.asList(UMM と UMNM が何であるかはわかりませんが、以下のようなものです)

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

ただし、ArrayList作成者asListが変更できないというトリッキーな部分があります。それが必要な場合は、2 つのオプションがあります。

ArrayList1: 新しいリストを:でラップします。

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

2: セッターを次のように変更します。

public void setNucleusType(List<Type> list) {
    nucleusType.clear();
    nucleusType.addAll(list);
}
于 2013-08-14T12:22:03.007 に答える
0
  1. RSTRule と RSTRules に類似した名前を付けることは避けてください。プログラムを読むときは実用的ではありません。たとえば、RSTRule と RSTRuleList と呼びます。
  2. RSTRuleList は、ビジネス ケースに応じてリストの内容を制御する必要があるため、グローバルに使用することをお勧めします。したがって、RSTRuleList でリストを非表示にすることができます
  3. ここで、RSTRuleList もファクトリとして使用します (これは理想的ではありません。依存性注入フレームワークを使用することをお勧めしますが、一部のニーズには問題ありません)。

    class RSTRuleList { 保護された ArrayList ruleList;

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

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

お役に立てば幸いです、よろしくお願いします、Zied

于 2013-08-14T12:47:11.037 に答える
0

ArrayList は、値を配列形式で格納するのに役立つコレクション クラスです。

  RSTRule rstRule=new RSTRule();
  List<Type> someList = new ArrayList<Type>();
  someList.add(Value);  
  someList.add(value);  
  rstRule.setNucleusType(someList)
  return rstRule;
于 2013-08-14T12:25:53.523 に答える
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);
    }
}

何が必要なのかわからないRSTRules

于 2013-08-14T12:30:44.833 に答える
0
class RSTRuleList { 
  protected ArrayList ruleList;

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

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

(上記の回答のコードはフォーマットされませんでした)

ジード

于 2013-08-14T12:50:00.923 に答える
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;
于 2013-08-14T12:22:47.740 に答える