Javassist’e yeni başlayan biriyim ve bununla ilgili bazı dersleri okudum.Varolan bir sınıfı, javasist kullanarak varolan bir sınıfa ekleyebilir miyiz?
Her yönteme bayt kodu enjeksiyonu yapmam gerektiğinden, yöntemin çıkışına girmeden önce veya girmeden önce bazı istatistikler alın. CtField türü varsayılan olarak yalnızca ilkel türü içeren
CtClass point = ClassPool.getDefault().get("Point");
CtField f = new CtField(CtClass.intType, "z", point);
point.addField(f);
Ama
, biz yeni bir alan ekleyebilirsiniz: Online javassit öğretici sayesinde , biz varolan sınıfa yeni bir alan yaratabilir bulmak türünün ilkel olmayan türü, örneğin ArrayList?Sınıfı java.util.ArrayList içe aktarmadığından, yeni ArrayList alanını varolan sınıfa ekleyebilirsem, derleme hatasına neden olur mu?
Teşekkür yukarıdaki kodu, nokta sınıfına new ArrayList üye somelist ekleyin ama mesele sınıfta biz değil mi' anlamına gelir t java.util.ArrayList dosyasını içe aktarın, bu derleme hatasına neden olur mu? – LifeOnCodes
Eh, gerçek bir İngilizce dil dizesi değil, java.util.ArrayList alanını temsil eden *** bytecode *** ekleyerek. İçe aktarma ifadeleri, derlenmiş sınıf dosyasında görünmeyen derleyici direktifleridir. Bu arada, ClassPool'daki sınıfları ararken neden tam nitelikli bir ad (FQN) kullanmanız gerekiyor. – Perception
Çok teşekkürler, anlıyorum. Sanırım bayt kodunu incelemek için biraz zaman harcamalıyım. Bir soru daha, umarım bana yardımcı olabilirsiniz, bazıList memeber'in ArrayList someList gibi jenerik bir tip olması mümkün mü? –
LifeOnCodes