开发相关

反射与set效率对比

2019-12-05  本文已影响0人  我是光芒万丈

反射与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;

}

}

上一篇 下一篇

猜你喜欢

热点阅读