/**
* 构造函数来给属性赋值
*/
private static void construct() {
Car car = new Car("oooo", 100, Lists.newArrayList(new Dog("aaa", true, true)));
}
/**
* set来给属性赋值
*/
private static void set() {
Car car = new Car();
car.setSign("oooo");
car.setPrice(100);
Dog dog = new Dog();
dog.setName("aaa");
dog.setAlive(true);
dog.setLoyal(true);
car.setMyDog(Lists.newArrayList(dog));
}
}
可以发现,构造就是比一个个设置要快不少,所以,在能一步到位给属性设置值的时候,考虑到效率问题,就要这么干
(2019-07-16 新增)
不是有老铁说builder模式吗?
我好奇就测试了一下,万一这个builder模式快呢。
下面是builder的代码
/**
* 使用JProfiler看时间占比
*/
@Test
public void testFast2() {
while (true) {
//33%
set();
//12.4%
construct();
//54.6%
builder();
}
}
/**
* 使用lombok的 builder 模式来赋值
*/
private static void builder() {
Car car = Car.builder()
.sign("0000")
.price(100)
.myDog(Lists.newArrayList(Dog.builder().name("aaa").alive(true).isLoyal(true).build()))
.build();
}