1

別のクラスのArrayListから新しいArrayListを作成していました。

  ArrayList<AplotDataModel.AplotDatasetData> tableData = AplotDataModel.getInstance().getArrayData();

その後、他のクラスの配列リストをIOservableListに変更しました。したがって、ArrayListの代わりにObservableListを取得するメソッドに変更するのと同じくらい簡単になることを望みました。

 ArrayList<AplotDataModel.AplotDatasetData> tableData = AplotDataModel.getInstance().getObservableList();

次のエラーが発生します。

タイプの不一致:IObservableListからArrayListに変換できません

EDIT AplotDatasetDataは、AplotDataModelのサブクラスです。

 public class AplotDatasetData {

  TCComponentItemRevision rev;
  TCComponentDataset   componentdataset;
  String prlValue;
  String datasetName;
  String markUp = "No";

  //////////////////////////////////////////////////////////////////////////
  //                           Constructor                                //
  //////////////////////////////////////////////////////////////////////////
  public AplotDatasetData(TCComponentItemRevision tcRevision, TCComponentDataset selectedDataset) {
     rev = tcRevision;
     componentdataset = selectedDataset;

  }// end Constructor

  ///////////////////////////////////////////////////////////////////////////
  //                            getDataset()                               //
  ///////////////////////////////////////////////////////////////////////////
  public TCComponent getDataset() {
     return componentdataset;
  }// end getDataset()

  ///////////////////////////////////////////////////////////////////////////
  //                               getRev()                                //
  ///////////////////////////////////////////////////////////////////////////
  public TCComponent getRev() {
     return rev;
  }// end getRev()

  ///////////////////////////////////////////////////////////////////////////
  //                             getPRLValue()                             //
  ///////////////////////////////////////////////////////////////////////////
  public String getPRLValue() {
     try {
        prlValue = rev.getRelatedComponent("IMAN_master_form_rev").getStringProperty("PRL");
     }
     catch (TCException e) {
        e.printStackTrace();
     }
     return prlValue;
  }// end getPRLValue()

  ///////////////////////////////////////////////////////////////////////////
  //                           getDatasetName()                            //
  ///////////////////////////////////////////////////////////////////////////
  public String getDatasetName() {
     try {
        datasetName = componentdataset.getStringProperty("object_string");
     }
     catch (TCException e) {
        e.printStackTrace();
     }
     return datasetName;
  }// end getDatasetName()

  ///////////////////////////////////////////////////////////////////////////
  //                          getECMarkupValue()                           //
  ///////////////////////////////////////////////////////////////////////////
  public String getMarkupValue() {
     return markUp;
  }// end getECMarkupValue()

  ///////////////////////////////////////////////////////////////////////////
  //                          setECMarkupValue()                           //
  ///////////////////////////////////////////////////////////////////////////
  public void setMarkupValue(String markupValue) {
     markUp = markupValue;

  }// end getECMarkupValue()

それが私のベースデータモデルです。ユーザーは、TCComponentItemRevisionrevを送信するデータを選択します。TCComponentDataset componentdataset;

ObservableListに移動し、AplotDatasetDataを使用してrevからより多くの情報を取得し、componentdatasetを使用してテーブルにデータを入力します。

したがって、ユーザーはGUIのボタンをクリックして、新しいGUIダイアログを開きます。新しいGuiには、いくつかの新しい列を含むテーブルもあります。最初のGUIでユーザーが入力したObservableListを取得し、それを使用して新しい配列リストを作成しようとしています。

ObservableListはAplotDatasetDataのようなクラスを拡張できませんか?

4

3 に答える 3

2

Collection から新しい ArrayList を作成できます。org.eclipse.core.databinding.observable.list.IObservableListはコレクションなので、

ArrayList<AplotDataModel.AplotDatasetData> tableData = new ArrayList<AplotDataModel.AplotDatasetData>(AplotDataModel.getInstance().getObservableList());

動作するはずです。

ArrayList が必要ない場合は、IObservableList を List に割り当てることもできます。

List<AplotDataModel.AplotDatasetData> tableData = AplotDataModel.getInstance().getObservableList();
于 2012-12-17T20:16:26.733 に答える
-1

IObservable をサポートするには、tableData ArrayList のジェネリックを変更する必要があります。

ArrayList<IObservable> tableData = AplotDataModel.getInstance().getObservableList();

基本的に、あなたは最初、私がリンゴでいっぱいのバスケットを持っていると言っていました。あそこのりんごの山をわたしのりんごかごに入れて。

次に、山をリンゴからオレンジに変更しました。今、あなたはそのオレンジの山を私のリンゴのバスケットに入れてくださいと言っています. かごだからみかんを入れられると思っているのですが、入れられません。りんごのバスケットです。オレンジ色のバスケットに変更します。

編集

質問を読み違えました。ArrayList を機能させるには、IObservableList を拡張して ArrayList を拡張する必要があります。

于 2012-12-17T19:54:22.640 に答える
-1

AplotDataModel が何かはわかりませんが、次の<?extends ?>ように利用できます。

Class c = AplotDataModel.getInstance().getClass();
ArrayList<?extends c ?> tableData = AplotDataModel.getInstance().getObservableList();

また

ArrayList<?extends IObservalbeList ?> tableData = AplotDataModel.getInstance().getObservableList();
于 2012-12-17T19:56:38.843 に答える