2009-08-25 29 views
10

Yasal Uyarı: Java Generics ile tecrübe bütün bir ton yok ama arkadaşlarım ve ben sadece bu gibi yapılandırılmış olan bir arabirim deşifre etmeye çalışıyorum sağlam saat geçirdim:Genel Arabirim kendini Parametre olarak alır. Özyineli Jenerik?

interface HasAttributes<A extends HasAttributes<A, B>, 
         B extends HasAttributesType<B>> extends Identification<B> { 

tam olarak ne yapar Bir arabirim, kendi başına bir tür parametresi aldığında ne anlama gelir? Bu ne yapar? -

+0

Ayrıca, arayüzün gövdesinin en azından bir kısmını da ekleyebilir misiniz? – Zed

+2

Uh, iyi ve ne anlama geldiğini açıklayan bir açıklama. Soruya verilen hayal kırıklığı için özür dilerim, ancak aşırı derecede karmaşık bir kodun anlamını oluşturmaya çalışmaktan kaynaklanan hayal kırıklığını anlamalısınız. Beşinci adamımız tarafından yazılan bu kodun anlamını çıkarmaya çalışan dört deneyimli geliştiriciye sahibiz. Hiçbirimiz başlarını veya kuyruklarını yapamazdık. Bir buçuk saat sonra. Öyleyse söylemeye gerek yok, soruyu yazdığımda çaresiz kaldım. [Jenerik SSS] (http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ206) Ben: –

+2

'Interface' Angelika Langer harika bir açıklama okuma var doğru Java sözdizimi – newacct

cevap

10

bu anlam edilir Orada Java'nın Enum sınıfının bir simliar durumun iyi bir örnektir:

public abstract class Enum<E extends Enum<E>> 
    implements Comparable<E>, Serializable 

sizin için jenerik bu özel kullanımı biraz ışık tutmak gerekir this Stack Overflow question about Enum bazı aydınlatıcı cevaplar vardır, Buna cevap verebildiğimden daha zarif cevaplar verdim.

+0

'u okuyana kadar aynı yanlış anlaşılmayı yaşadım. Bu size çok yardımcı oluyor. Bununla çok ama çok kafamız karışmıştı. –

+2

"Bunun anlamı var" Peki neden bu anlamı açıklamıyorsunuz? – newacct

+0

@newacct söz konusu bağlantıya inline özeti için özel olsa da, bağlantılı cevabın kopyala-yapıştırmasının bu durumda daha değerli olacağını düşünmüyorum (bu başka bir SO sorusuna bağlantıdır, bu yüzden aynı ömre sahip olacak Bu bir ... Burada bağlantılı cevabı okumak ve özetlemek için çekinmeyin. –

İlgili konular