反射与set效率对比

反射与set效率对比


public class Test7 {

    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {

        A a= new A();

        long start= System.currentTimeMillis();

        for (int i= 0; i< 100000; i++) {

            setval1(a);

}

        System.out.println("耗时"+(System.currentTimeMillis()-start));

}

    //50000 平均50ms 1000000 159ms  100000000 8856ms

    private static void setval1(A a) throws NoSuchFieldException, IllegalAccessException {

        Field field= A.class.getDeclaredField("a");

        field.setAccessible(false);

        field.set(a,"1");

}

    //50000 2ms  1000000 5ms  100000000 13ms

    private static void setval2(A a) throws NoSuchFieldException, IllegalAccessException {

      a.setA("1");

}

}

class A {

    String a;

    public String getA() {

        return a;

}

    public void setA(String a) {

        this.a = a;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容