bug
本来看到用
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
都没问题就觉得没问题了,但万万想不到,@Getter没起作用
(注:这个只是普通java项目,自己导入lombok),下图为lombok版本
代码如下
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* @author copa
* @createDate 2022-06-07 14:45
* @function
*/
public class CompletableFutureMallDemo {
static List<NetMall> list = Arrays.asList(
new NetMall("jd"),
new NetMall("dangdang"),
new NetMall("taobao")
);
/**
* step by step 一家家搜查
* @param list
* @param productName
* @return
*/
public static List<String> getPrice(List<NetMall> list, String productName) {
return list.stream()
.map(netMall ->
String.format(productName + " in %s price is %.2f",
netMall.getNetMallName(), netMall.calcPrice(productName)))
.collect(Collectors.toList());
}
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
List<String> list1 = getPrice(list, "mysql");
for (String element : list1) {
System.out.println(element);
}
long endTime = System.currentTimeMillis();
System.out.println("----costTime:" + (endTime - startTime) + " 毫秒");
//System.out.println(ThreadLocalRandom.current().nextDouble() * 2 + "mysql".charAt(0));
}
}
class NetMall {
@Getter
private String netMallName;
public NetMall(String netMallName) {
this.netMallName = netMallName;
}
public double calcPrice(String productName) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
return ThreadLocalRandom.current().nextDouble() * 2 + productName.charAt(0);
}
}
bug消息如下
解决
idea设置
然后就解决啦~