2010-10-03 24 views
5

'daki JAR dosyasından Java yöntemi parametre adları Bir JAR'a oluşturmak için bir ant dosyası içeren bir Java kütüphanesi oluşturdum. Başka bir Java projeden bu JAR dosyasını kullandığınızda, yöntem parametre adları Eclipse yöntemi ipucu/otomatik tamamlamada olarak görünür: arg0, ARG1, arg ... meselaEclipse

, yöntem:

 void publishStatus(String jobId, int count); 

görünür gibi:

 void publishStatus(String arg0, int arg1); 

Neyi eksik?

sayesinde

Düzenleme

bu Görünüşe zaten burada çok daha detaylı bir şekilde ele alınmıştır: derlerken Sen java derleyicisi olması gerekir Preserving parameter/argument names in compiled java classes

cevap

4

Java yöntemi argüman adları sınıf dosya biçiminde gösterilmez. JVM spesifikasyonunun ilgili bölümleri 4.3.3 ve 4.6 bölümleridir. (Kesin bunlar bazı durumlarda olabilir, ama bunlar arayüzler için dahil edilemez ve sınıf derlendi olduğunda, ilgili derleyici seçenekleri ayarlamak sürece dahil edilmez.) Pratikte

Eclipse da yapabilirsiniz sınıf dosyalarına karşılık gelen kaynak kodu bulabilir ve ayrıştırabilirseniz, metod argüman isimleri ile size sunar. Basit durumda, ilgili kaynak kodunu içeren bir ZIP dosyası indirerek ve bunu ikili JAR'a bağlayarak bunu ele alabilirsiniz.

İZLEMİNDE Yorumlarınız re:

Ben (yani açıkçası çalışmasına rağmen) JAR kaynak klasörü dahil etmek anlamına değildi. Bağımlı bir JAR dosyasının Eclipse özelliklerine bakarsanız, ilgili kaynak JAR veya dizini eklemenin bir yolu vardır. (Size kesin ayrıntıları vermek için hemen Eclipse'i çalıştıramıyorum.) Her neyse, bu yaklaşım bağımlı JAR'ı yeniden derlemenizi veya değiştirmenizi gerektirmez.

+0

Bu konuda burada çok fazla tartışma olduğunu fark ettim: http://stackoverflow.com/questions/939194/preserving-parameter-argument-names-in-compiled-java-classes – wsb3383

+0

... ve Teşekkürler! Bu çalışma, JAR'daki kaynak klasörünü ekledim, şimdi her iki sınıfta ve arayüzde tüm isimleri görebiliyorum :) – wsb3383

3

"debug bilgisini" include sınıfları ve jar dosyanızı yeniden oluşturun.

Karınca için bu, <javac ...> etiketteki debug="true" özniteliğine sahip olmak demektir.

+0

teşekkürler. Bu, sadece sınıflar için değil, arayüzler için çalışır gibi görünüyor. – wsb3383