쓰기 가능한 목록을 사용하여 사용자가 응용 프로그램에 추가하는 데이터 집합 데이터를 저장하고 있습니다. 추가 방법은 WritableList 캐스팅 문제
public class AplotDataModel {
IObservableList observableList = new WritableList();
private static AplotDataModel instance = null;
//////////////////////////////////////////////////////////////////////////
// Constructor //
//////////////////////////////////////////////////////////////////////////
private AplotDataModel() {
}// end Constructor
//////////////////////////////////////////////////////////////////////////
// SingletonSelectTable getInstance() //
//////////////////////////////////////////////////////////////////////////
public static AplotDataModel getInstance() {
if (instance == null) {
instance = new AplotDataModel();
}
return instance;
}
//////////////////////////////////////////////////////////////////////////
// add() //
//////////////////////////////////////////////////////////////////////////
public void add(TCComponentItemRevision tcRevision, TCComponentDataset selectedDataset) {
AplotDatasetData pp = new AplotDatasetData(tcRevision, selectedDataset);
if (!observableList.contains(pp)) {
observableList.add(pp);
}
}
//////////////////////////////////////////////////////////////////////////
// clearTableArray() //
//////////////////////////////////////////////////////////////////////////
public void clearTableArray() {
observableList.clear();
}
}// End Class
, 나는
AplotDatasetData pp = etc.....
클래스를 쓰기 가능한 목록에 추가 데이터를 포맷하는 클래스를 사용하고
public class AplotDatasetData {
TCComponentItemRevision rev;
TCComponentDataset componentdataset;
String markUp = "no";
//////////////////////////////////////////////////////////////////////////
// Constructor //
//////////////////////////////////////////////////////////////////////////
public AplotDatasetData(TCComponentItemRevision tcRevision, TCComponentDataset selectedDataset) {
rev = tcRevision;
componentdataset = selectedDataset;
}// end Constructor
//////////////////////
// getDataset() //
//////////////////////
public TCComponent getDataset() {
return componentdataset;
}
//////////////////
// getRev() //
//////////////////
public TCComponent getRev() {
return rev;
}
//////////////////
// equals() //
//////////////////
@Override
public boolean equals(Object o) {
AplotDatasetData p = (AplotDatasetData) o;
if (rev.equals(p.getRev()) && componentdataset.equals(p.getDataset())) {
return true;
}
else {
return false;
}
}// end equals()
내 코드는 컴파일 -하지만이 실행 쓰기 가능한 목록과 관련된 작업. 다음 오류가 발생합니다.
ERROR: 11:31:00,591 - TcLogger$IC_LogListener.logging:? org.eclipse.core.runtime - org.eclipse.ui - 0 - Unhandled event loop exception org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ClassCastExc eption: org.eclipse.core.databinding.observable.list.WritableList cannot be cast to com.lexmark.aplot.datamodels.AplotDataModel$AplotDatasetData) etc .....
Caused by: java.lang.ClassCastException: org.eclipse.core.databinding.observable .list.WritableList cannot be cast to com.lexmark.aplot.datamodels.AplotDataModel $AplotDatasetData at com.lexmark.aplot.datamodels.AplotDataModel$AplotDatasetData.equals(A plotDataModel.java:167)
나는 문제가 Equals 메서드에 알고,하지만 난 그것을 변경하는 방법을 확실하지 않다, 그래서 쓰기 가능한 목록과 함께 작동합니다.
편집
가 나는 문제가 같음에 있던 writablelist