私はクラス「命題」を持っています。このクラスでは、別のクラス、つまり「命題」の costrucor を for ループで数回呼び出します。クラス「Proposition」にはメソッド「createProposition」があります。このメソッドは、命題の配列リストを「命題」に返すと同時に、「命題セット」に保存する必要があります。しかし、私のメソッドはnullを返します。また、Proposition の値を変更するには String メソッドを使用する必要があります。実際には、命題の配列リスト、つまり「propositionsTempArray」は、「Proposition」クラスから「Propositions」クラスの「propList」に返される必要があります。
public class Proposition extends ArrayList<Proposition> {
private String productName;
private Property property;
private Serializable value;
private Type type;
private Rating rating;
public Proposition() {}
public ArrayList<Proposition> createPropositions(UserModel userModel,Facts facts,Fact fact){
...
assignPropositionVariablesInPreviousProductNoMatch(Fact newfact,String name, String previousProductValue)
....
return propositionsTempArray ;
}
private Proposition assignPropositionVariablesInPreviousProductNoMatch(Fact newfact,String name, String previousProductValue) {
Proposition proposition=new Proposition();
proposition.productName=name;
proposition.type = Type.PreviousProductNoMatch;
proposition.value = previousProductValue;
proposition.property = (Property) Configuration.typeMapping.getData(("property " . concat((String) newfact.getData("property"))));
proposition.rating = (Rating) Configuration.typeMapping.getData(("rating " . concat((String) newfact.getData("rating"))));
return proposition;
}
public String toString() {
String valueString = "";
if (value == null) {
valueString = "null";
} else {
if (value instanceof String[]) {
valueString = Arrays.toString((String[]) getValue());
} else {
valueString = getValue().toString();
}
return MessageFormat.format(" {0}, {1}, {2}, (Rating:{3},Property:{4})", this.getProductName(), this.getType(),valueString,this.getRating(),this.getProperty());
}
public class Propositions extends HashSet<Proposition> implements Comparable<Propositions> {
public Propositions() {
}
public Propositions(UserModel userModel,Facts facts) {
for (Fact fact: facts) {
Proposition propList=new Proposition ();
propList.createPropositions(userModel,facts,fact);
this.addAll(propList);
}
}
}