0

コンストラクターパラメーターで定義された、他の形状の単なる選択であるカスタム形状クラスを作成しています。

したがって、次のクラス見出しがあります。

public class SetShape implements Shape {

private final Shape shape;

コンストラクターで shape フィールドを設定し、すべての Shape インターフェイス メソッドを実装して、それらをそのフィールドに委譲します。

これを何とか自動化することは可能ですか?これに対してすでに定義されているクラスはありますか?GeneralPathそのようなクラスになることができますか?

前のインスタンスで初期化されたShapeインスタンスとインスタンスの違いは何ですか?GeneralPathShape

4

2 に答える 2

0

あなたが望むものはあなたが思っているよりも簡単なようです:

public class SetShape implements Shape {

    private final Shape shape;

    public SetShape(Shape shape) {
        this.shape = shape;
    }

    @Override
    public boolean contains(double x, double y) {
        shape.contains(x, y);
    }

}

そして、 Shapeインターフェイスのすべてのメソッドに対して同様のことを行います。コンストラクターに渡されるものはすべて、これらすべてのメソッドの実装を含むことが保証されていることに注意してください。

于 2012-06-16T03:39:21.100 に答える
0

PolygonクラスまたはAreaクラスを試してください。特に後者では、交差追加などによって形状を結合できます。

于 2012-06-15T20:04:04.550 に答える