Rumah  >  Soal Jawab  >  teks badan

java中可以通过类的class属性得到该类的字节码文件对象?


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

ringa_leeringa_lee2743 hari yang lalu548

membalas semua(2)saya akan balas

  • 巴扎黑

    巴扎黑2017-04-18 10:52:41

    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.

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:52:41

    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

    balas
    0
  • Batalbalas