java中可以通过类的class属性得到该类的字节码文件对象?
ringa_lee
ringa_lee 2017-04-18 10:50:41
0
2
584


Class c1 = Student.class;
可是无论是Student类还是它继承的Object类都没有class属性呀?

ringa_lee
ringa_lee

ringa_lee

membalas semua(2)
巴扎黑

Terima kasih atas jemputan.

Pertama sekali, betulkan kelas ralat ialah kata kunci, bukan ahli statik dalam kelas Pelajar. <class-name>.class ialah sintaks khusus dalam Java.

Kedua, untuk mendapatkan fail bytecode kelas ini, anda mesti pergi ke sistem fail untuk mencarinya, yang tidak lebih daripada kaedah seperti Student.class.getResource/getResourceAsStream, yang agak menyusahkan. Adalah disyorkan untuk melihat projek sumber terbuka bytecode seperti asm dan cglib.

Akhir sekali, bytecode ialah teknologi yang agak kompleks dan harus digunakan sebagai pilihan terakhir, seperti mendapatkan Anotasi dalam parameter kaedah (rujuk Spring Web MVC). Sesetengah teknologi yang nampaknya berkaitan dengan bytecode sebenarnya boleh dipintas Contohnya, AOP berasaskan antara muka boleh dilaksanakan menggunakan Proxy dan bukannya bytecode.

大家讲道理

Satu teori yang saya semak ialah ini bukan kata kunci, tetapi nilai literal Anda boleh cuba menaip "Student.class" terus dalam IDE, dan ia akan mengingatkan anda bahawa anda perlu menetapkan nilai ini kepada pembolehubah. . Jika kami mencari yang baru nanti, kami akan menambahnya untuk pemuatan kelas, anda boleh rujuk blog saya Pemuat Kelas Tersuai - Membaca dari .class dan .jar

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan