java 获取字节码文件的几种方法总结
java获取字节码文件的几种方法总结
在本文中,以Person类为例,将分别演示获取该类字节码文件的三种方式,
其具体思想及代码如下所示:
publicclassPerson{
privateintage;
privateStringname;
publicPerson(){
System.out.println("personrun");
}
publicPerson(Stringname,intage){
this.age=age;
this.name=name;
System.out.println("Personparamrun..."+this.name+":"+this.age);
}
publicvoidshowInfo(){
System.out.println(this.name+"......"+this.age);
}
}
publicclassGetClassFile{
publicstaticvoidmain(String[]args)throwsClassNotFoundException{
getClassObject_3();
}
/**
*通过给定的类的字符串名称就可以获取该类的字节码文件,更利于扩展
*可以用Class类中的"forName()"方法来完成
*/
publicstaticvoidgetClassObject_3()throwsClassNotFoundException{
//包名一定要写全,否则会报"java.lang.ClassNotFoundException"异常
StringclassName="src.Person";
Classclazz=Class.forName(className);
System.out.println(clazz);
}
/**
*任何数据类型都具备一个静态属性
*通过".class"来获取对应的Class对象
*扩展性较差
*/
publicstaticvoidgetClassObject_2(){
Classclazz=Person.class;
Classclazz1=Person.class;
System.out.println(clazz==clazz1);
}
/**
*运用Object类中的getClass方法
*用这个方法时,必须明确具体的类,并创建对象
*比较麻烦
*/
publicstaticvoidgetClassObject_1(){
Personp=newPerson();
Classclazz=p.getClass();
Personp1=newPerson();
Classclazz1=p1.getClass();
System.out.println(clazz==clazz1);
}
}
以上就是java获取字节码文件的几种方法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!