2

別のクラスプロパティを動的に継承するドメインクラスコンストラクターを作成しようとしています。しかし、私はそれを正しく動作させることができません。

ここに例があります:

class Example1 {

  String name;
  String location;
}

class Example2 extends Example1 {

  String status;

  public Example2 (Example1 orig){
    // Code here to set this.name and this.location  to name and location from orig
    // dynamically, so adding a field in Example1 does not require me to add that 
    // field here.
  }
}
4

3 に答える 3

2

プロパティをコピーするだけです。

class Example2 extends Example1 {

   String status

   Example2() {}

   Example2(Example1 orig) {
      this.properties = orig.properties
   }
}
于 2011-08-26T18:47:00.113 に答える
1

十分なトラブルシューティングとオンライン検索を行った後、解決策を見つけました。

public Example2(Example1 orig){
   def d = new DefaultGrailsDomainClass(Example1.class)
   d.persistentProperties.each { val ->
       this[val.name] = orig[val.name]         
   }       
}

これを含めます:

import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass
于 2011-09-08T17:54:02.910 に答える
0

あなたが何を達成したいのか完全にはわかりませんが、「Example2」クラスに「Example1」フィールドを入れることができない理由はありますか?

于 2011-08-26T15:55:27.790 に答える