Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Java - Parametr pro dvě třídy se stejným prapředkem?

Definujes spolecne rozhrani tech trid. Instance tohoto rozhrani pak bude na vstupu tvoji metody. To je Java 101…

Tohle jsem napsal ryze jako příklad. Jde o to, že třídy se liší pouze v typu layout. A jednodušší je to dát do samostatných tříd. A už jsem dělal něco obdobného s Path a funguje to

public class Shape1 extends javafx.scene.shape.Path {

    public Shape1(PathElement... elements) {
        super(elements);
    }    
}

public class Shape2 extends javafx.scene.shape.Path {

    public Shape2(PathElement... elements) {
        super(elements);
    }    
}

public static <S extends Path> ArrayList<S> create_array(
    int X1, int Y1, int X2, int Y2,
    Function<PathElement[], S> shapeConstructor) {

    var shapes = new ArrayList<S>();
    shapes.add(shapeConstructor.apply(new PathElement[] {
        new MoveTo(X1, Y1), new LineTo(X2, Y2)
    }));
    //...
    return shapes;
}

Tady však vracím ArrayList a obě třídy mají společného předka (ne až prapředka)

PS. A v čem je lepší kompozice?

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny