Groovy:プロパティ内のメソッドへの参照を親オブジェクトに追加します

アンディ

私がこのようなクラスを持っているとしましょう:

class Foo {
  def doFoo() {
    println "foo"
  }
}

そしてこのような別のもの:

class Bar {
  def doBar() {
    println "bar"
  }
}

そして、次のようになります。

class Baz {
  Foo foo = new Foo()
  Bar bar = new Bar()
}

その例では、次のように使用できるようになるには何が必要でしょうか。

Baz baz = new Baz()
baz.doFoo()
baz.doBar()

どこdoFoodoBarメソッド呼び出しは、単純に、それぞれのオブジェクトで定義されたバージョンに委任しますか?ある種のメタプログラミングでこれを行う方法はありますか、それとも各メソッドをラッパーとして個別に定義することに固執していますか?

オパール

@Delegate 必要なものは次のとおりです。

class Foo {
  def doFoo() {
    println "foo"
  }
}

class Bar {
  def doBar() {
    println "bar"
  }
}

class Baz {
  @Delegate
  Foo foo = new Foo()
  @Delegate
  Bar bar = new Bar()
}

Baz baz = new Baz()
baz.doFoo()
baz.doBar()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトメソッド内からオブジェクトプロパティにどのようにアクセスしますか?

分類Dev

オブジェクトのすべてのプロパティにreduceメソッドを適用します

分類Dev

クラスメソッドへのオブジェクトの受け渡し:オブジェクトはこのプロパティまたはメソッドをサポートしていません

分類Dev

別のオブジェクトメソッド内からObjectプロパティにアクセスする

分類Dev

Excel VBA-セルをアクティブ化して値を追加するときに、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」

分類Dev

オブジェクトのnumpyndarrayにメソッドを効率的/エレガントに適用するか、プロパティを取得します

分類Dev

メソッドのプロパティを変更する場合は、非静的フィールド、メソッド、またはプロパティ 'Module.action2'にオブジェクト参照が必要です

分類Dev

プロパティを型オブジェクトにパックし、メソッドの結果として返します

分類Dev

オブジェクトメソッドにプロパティを追加できますか?

分類Dev

配列内の最新のオブジェクトにプロパティを追加します

分類Dev

GetAbbreviatedMonthNameの非静的フィールド、メソッド、またはプロパティには、オブジェクト参照が必要です

分類Dev

Fluent NHibernateのHasMany.Whereラムダを使用したオーバーロードメソッドは、子オブジェクトプロパティを参照するときに例外を発生させます

分類Dev

JavaScriptの関数内のオブジェクトにプロパティを追加しますか?

分類Dev

オブジェクトは、WebAPIへのajaxPOSTでプロパティまたはメソッド「val」をサポートしていません

分類Dev

オブジェクトのプロパティへの参照を変数に格納します

分類Dev

非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要ですLabel1色の変更

分類Dev

ディレクトリの取得:非静的フィールド、メソッド、またはプロパティに必要なオブジェクト参照

分類Dev

拡張メソッドから動的に新しいオブジェクトプロパティを追加する

分類Dev

オブジェクトは、InternetExplorerの「前へ」のプロパティまたはメソッドをサポートしていません

分類Dev

モックオブジェクトのオブジェクトプロパティのメソッドを呼び出すと、NullPointerExceptionが発生します

分類Dev

参照を返すメソッドを介してプライベートオブジェクトのプロパティを変更する

分類Dev

JavascriptforEach配列メソッドはオブジェクトのプロパティを変更しません

分類Dev

Windowsフォームの非静的フィールド、メソッド、またはプロパティには、オブジェクト参照が必要です

分類Dev

オブジェクトは独自のプロパティを返し、メソッドを保持します

分類Dev

非静的フィールドのメソッドまたはプロパティにはオブジェクト参照が必要です

分類Dev

子オブジェクトの共通プロパティを追加し、親キー(Node.js)を追加します

分類Dev

指定されたオブジェクトのプロパティとメソッドを取得します

分類Dev

同じオブジェクトのメソッド内からオブジェクトプロパティを作成する方法はありますか?

分類Dev

リストオブジェクトのプロパティにExistsメソッドを使用する方法

Related 関連記事

  1. 1

    オブジェクトメソッド内からオブジェクトプロパティにどのようにアクセスしますか?

  2. 2

    オブジェクトのすべてのプロパティにreduceメソッドを適用します

  3. 3

    クラスメソッドへのオブジェクトの受け渡し:オブジェクトはこのプロパティまたはメソッドをサポートしていません

  4. 4

    別のオブジェクトメソッド内からObjectプロパティにアクセスする

  5. 5

    Excel VBA-セルをアクティブ化して値を追加するときに、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」

  6. 6

    オブジェクトのnumpyndarrayにメソッドを効率的/エレガントに適用するか、プロパティを取得します

  7. 7

    メソッドのプロパティを変更する場合は、非静的フィールド、メソッド、またはプロパティ 'Module.action2'にオブジェクト参照が必要です

  8. 8

    プロパティを型オブジェクトにパックし、メソッドの結果として返します

  9. 9

    オブジェクトメソッドにプロパティを追加できますか?

  10. 10

    配列内の最新のオブジェクトにプロパティを追加します

  11. 11

    GetAbbreviatedMonthNameの非静的フィールド、メソッド、またはプロパティには、オブジェクト参照が必要です

  12. 12

    Fluent NHibernateのHasMany.Whereラムダを使用したオーバーロードメソッドは、子オブジェクトプロパティを参照するときに例外を発生させます

  13. 13

    JavaScriptの関数内のオブジェクトにプロパティを追加しますか?

  14. 14

    オブジェクトは、WebAPIへのajaxPOSTでプロパティまたはメソッド「val」をサポートしていません

  15. 15

    オブジェクトのプロパティへの参照を変数に格納します

  16. 16

    非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要ですLabel1色の変更

  17. 17

    ディレクトリの取得:非静的フィールド、メソッド、またはプロパティに必要なオブジェクト参照

  18. 18

    拡張メソッドから動的に新しいオブジェクトプロパティを追加する

  19. 19

    オブジェクトは、InternetExplorerの「前へ」のプロパティまたはメソッドをサポートしていません

  20. 20

    モックオブジェクトのオブジェクトプロパティのメソッドを呼び出すと、NullPointerExceptionが発生します

  21. 21

    参照を返すメソッドを介してプライベートオブジェクトのプロパティを変更する

  22. 22

    JavascriptforEach配列メソッドはオブジェクトのプロパティを変更しません

  23. 23

    Windowsフォームの非静的フィールド、メソッド、またはプロパティには、オブジェクト参照が必要です

  24. 24

    オブジェクトは独自のプロパティを返し、メソッドを保持します

  25. 25

    非静的フィールドのメソッドまたはプロパティにはオブジェクト参照が必要です

  26. 26

    子オブジェクトの共通プロパティを追加し、親キー(Node.js)を追加します

  27. 27

    指定されたオブジェクトのプロパティとメソッドを取得します

  28. 28

    同じオブジェクトのメソッド内からオブジェクトプロパティを作成する方法はありますか?

  29. 29

    リストオブジェクトのプロパティにExistsメソッドを使用する方法

ホットタグ

アーカイブ