分别用反射和lambda创建对象
其中反射是指下面这种方式:
clazz.newInstance();
复制代码
lambda是指下面这种方式:
Supplier extends Document> supplier = TempDoc::new;
supplier.get();
复制代码
测试结果如下:
create instance by reflect, round:1000, time:9ms
create instance by lambda, round:1000, time:12ms
create instance by reflect, round:10000, time:20ms
create instance by lambda, round:10000, time:16ms
create instance by reflect, round:100000, time:130ms
create instance by lambda, round:100000, time:126ms
create instance by reflect, round:1000000, time:1364ms
create instance by lambda, round:1000000, time:602ms
create instance by reflect, round:10000000, time:5645ms
create instance by lambda, round:10000000, time:5317ms
create instance by reflect, round:100000000, time:56355ms
create instance by lambda, round:100000000, time:53164ms
简单的记录一下,结果表明反射与lambda这两种方式的效率并不会相差很多,在使用lambda的地方可以放心的使用反射。