gpt4 book ai didi

java - 不能将 Guava Optional 用作默认构造函数?

转载 作者:行者123 更新时间:2023-11-29 10:18:19 26 4
gpt4 key购买 nike

我想不出使用 Guava Optional 作为默认构造函数参数的正确方法。下面的代码不能用 Java 1.6 编译

public class ShoppingCart implements Serializable {
private final Optional<DiscountCoupon> discountCoupon;

public ShoppingCart() {
this(Optional.absent());
}
public ShoppingCart(Optional<DiscountCoupon> dc) {
Preconditions.checkNotNull(dc);
if (dc.isPresent()) {
Preconditions.checkArgument(dc.get().getPennyDiscount() != 0 ||
dc.get().getPercentDiscount() != 0);
}
discountCoupon = dc;
}

报错是:

/Users/pfarrell/sandbox//com/wayfinderdigital/struct/ShoppingCart.java:29: cannot find symbol
symbol : constructor ShoppingCart(com.google.common.base.Optional<java.lang.Object>)
location: class com.wayfinderdigital.struct.ShoppingCart
this(Optional.absent());

最佳答案

Java 无法从您编写的代码中自动推断出泛型。相反,使用

public ShoppingCart() {
this(Optional.<DiscountCoupon>absent());
}

(虽然我不得不问——你确定 Optional 在这里真的合适吗?)

关于java - 不能将 Guava Optional 用作默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com