可能我们有一个模糊的概念,反射性能会慢,但是有多慢没有一个具体的数据。那我就写代码来测试一下。
packagecom.itbac.reflection;importjava.lang.reflect.Field;public classtest {public static void main(String[] args) throwsNoSuchFieldException, IllegalAccessException {long begin =System.currentTimeMillis();
Book book= newBook();
book.setName("java从入门到放弃");
book.setNum(1);
book.setPrice(1.2);
System.out.println(book.toString());//循环一千万次
for (int i = 0; i < 10000000; i++) {//1.set方法赋值 耗时毫秒:7//book.setNum(++i);//2.反射赋值 耗时毫秒:1045
setFeild(book, i,"num");
}
System.out.println(book.toString());long end =System.currentTimeMillis();
System.out.println("毫秒:"+(end-begin));
}private static void setFeild(Book book, int i,String str) throwsNoSuchFieldException, IllegalAccessException {
Class extend