2010-03-26 26 views
7

Ben mümkün olduğunca daha genel hale getirme dinamik bir sınıf açıklama istiyorum:Dinamik sınıf açıklama

public class Test<T> { 

    @XmlAttribute(name = dynamicvalue) 
    T[] data; 

    public Test(String dynamicvalue) { 
    } 
} 

böyle bir şey başarmak için herhangi bir yolu var mı.

TA

cevap

4

sayılı Açıklamalar statik sınıf düzeyi bilgileri ve onlar örnek alanların değerlerine (hayır, onlar statik alanlar ya değerlerine etkisinde olamaz) etkisinde edilemez.

1

Bunu mümkün olmalıdır teoride yüzden, yeni byte yükleyerek zamanında yeni sınıflar oluşturabilir (hatırlamak, ek açıklamalar sınıfından değil nesne ile ilişkili). Bunları oluşturmak için Java Assist gibi bir API kullanabilirsiniz. Bakabileceğin bir annotation package var.

Kolay olmayacak. Bu yolu ise

+1

, yine farklı ek açıklamalarla birden sınıfları oluşturmak gerekecek unutmayın. Bu çeşit bir ortak sınıfa sahip olma amacını yitirir. –

+0

Jlanza'nın bazı harici API'larla (belki bir XML serializer) ilgilenmek için bunu yapması gerektiğini varsayalım, aksi takdirde bir örnek değişkeni kullanacaksınız. –

+0

Fikir, bir öğe için genel bir sınıf oluşturmak ve daha sonra devralınacak üst sınıf notunu kullanmak, ancak adı otomatik olarak değiştirmek oldu. Dinamik değer, Şablon sınıfına bağlıdır. – jlanza