gpt4 book ai didi

java operator + not defined for type(s) Integer, int 类型

转载 作者:行者123 更新时间:2023-12-03 23:14:21 25 4
gpt4 key购买 nike

我正在尝试实现一个购物车,但我在使用 Integer 类时遇到了一些问题。这是代码:

public class ShoppingCart<Product, Integer> extends TreeMap<Product, Integer> {

void addToCart(Product product) {
if (this.containsKey(product)) {
Integer nrOfProds = this.get(product);
this.put(product, nrOfProds + 1); //the problem is here
} else
this.put(product, Integer.valueOf(1)); //and also here
}
....
}

Eclipse 说“operator + undefined for type(s) Integer, int”。但我读到有关拆箱的内容,我想我会没事的。

没关系,我试图解决这个问题,所以我尝试在 nrOfProds 上调用 intValue()。这一次,Eclipse 说“方法 intValue() 对于 Integer 类型是未定义的”。怎么会?它是为 Integer 类型定义的。

Integer.valueOf(1) 也有问题。 又是未定义的方法。

这有什么问题吗?

最佳答案

您已将 Integer 声明为类的类型参数,它覆盖了 java.lang.Integer 类。声明类时在尖括号中类名后给出的值是类型参数。

将类声明更改为:

public class ShoppingCart extends TreeMap<Product, Integer>

理想情况下,您应该避免扩展 TreeMap。而是将其作为我类(class)中的 instance 字段。

关于java operator + not defined for type(s) Integer, int 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19208026/

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