-1

私はクラス「命題」を持っています。このクラスでは、別のクラス、つまり「命題」の 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);
                    }
                }

            }
4

1 に答える 1

1
        assignPropositionVariablesInPreviousProductNoMatch(Fact newfact,String name, String previousProductValue)

このメソッドは命題を返しますが、結果をキャッチできません。

試す:

Proposition proposition = assignPropositionVariablesInPreviousProductNoMatch(Fact newfact,String name, String previousProductValue);

...

propositionsTempArray.add(proposition);

...

これがお役に立てば幸いです。

編集:私はあなたが持っているあなたのコードのどこかにあると仮定しています:

propositionsTempArray = new ArrayList<Proposition>();
于 2013-08-12T14:43:19.213 に答える