Das Verständnis Generics

stimmen
1
    @Entity
    @Table(name = your_entity)
    public class YourEntityClass implements IEntity<Long> {

        @Id
        @SequenceGenerator(name = gen_test_entity2_id, sequenceName = test_entity2_id_seq, allocationSize = 10)
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = gen_test_entity2_id)
        private Long id;

        @Column(name = name, nullable = false, length = 64)
        private String name;

        /*
         * Create constructors, getters, setters, isEquals, hashcode, etc.
         */
    }

public interface IEntity<I extends Serializable> extends Serializable {

    /**
     * Property which represents id.
     */
    String P_ID = id;

    /**
     * Get primary key.
     *
     * @return primary key
     */
    I getId();

    /**
     * Set primary key.
     *
     * @param id primary key
     */
    void setId(I id);
}

Für den obigen Code, meine Frage ist, warum YourEntityClassmüssen passieren Longin IEntity<Long>? Warum nicht etwas anderes mag IEntity<String>? Ist es , weil die idvom Typ Longund der Getter idmüssen den gleichen Typ zurückgeben , die wir bereitgestelltIEntity ?

Veröffentlicht am 30/12/2009 um 03:55
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Die YourEntityClass setzt eine generische Schnittstelle und es ist die spezifische Art für generische Schnittstelle angeben. Es hat ein Verfahren zur Herstellung eines bestimmten Typs mit (Long), da das, was bringt die Schnittstelle zu implementieren.

Beantwortet am 30/12/2009 um 04:02
quelle vom benutzer

stimmen
4

YourEntityClasssetzt <Long>in IEntitywillkürlich. Jede Art , die Geräte Serializabledort gehen können.

Nachdem Sie den Typ für sich entschieden haben I, Ihr getId()hat Methode , die gleiche Art zurückzukehren.

Zum Beispiel könnten Sie eine andere Klasse, die implementiert IEntity<String>und getId()in diesem Fall wäre eine zurückkehren String.

Beantwortet am 30/12/2009 um 04:04
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more