2009-06-18 12 views
5

Java'da çalışma zamanında sınıfları eklemenin (veya var olanı genişletmenin) bir yolu var mı? Çalışma zamanında var olan bir sınıfı genişletmem ve bunu sınıf yoluna eklemem gereken bir sorun üzerinde sıkışıp kaldım, böylece bu yeni sınıf alınıyor. Sen BCEL bakmak isteyebilirsinizJava'da çalışma zamanında yeni sınıflar ekleme veya ekleme

sayesinde

cevap

4

. Yapmanız gereken şey hakkında daha fazla bilgi olmadan, daha spesifik bir cevap vermek zor.

0

Bu özelliğe neden ihtiyaç duyduğunuzu kesinlikle yazmalısınız. Çalışma zamanında mantığı eklemeyi veya değiştirmeyi denerseniz, scripting API ve bazı gerçek implementations'a bakmak isteyebilirsiniz.

11

Bunu yapabileceğiniz çeşitli yollar vardır. javax.tools paketi kullanarak ve daha sonra bir ClassLoader kullanarak yük zamanında

  • derleme kaynak kodu.
  • Arabirimlere yazıyorsanız, Proxy ile sınıfları süsleyebilirsiniz.
  • BCEL veya ASM gibi bir teknolojiyi kullanarak daha karmaşık bir bytecode manipülasyon/üretme yolunu kullanın (ikincisi, ek açıklamalar gibi dil özellikleri için daha güncel bir desteğe sahiptir) ve ardından sınıfı bir ClassLoader ile yükleyin.

Başka seçenekler olduğunu hayal ediyorum.

İlgili konular