operator不能应用于Integer

时间:2014-04-13 21:51:55

标签: java

我正在编写一个抽象类,一个类扩展它。

public abstract class stream<T>{
  public abstract T data();
}

上面是抽象类。

public class IntegerStream<Integer> extends stream{
  private Integer InitialV;

  public IntegerStream(Integer InitialV){
    this.InitialV = InitialV;
  }

  public Integer next(){
   InitialV = InitialV + 1;
  }

  @Override
  public Integer data() {
    return InitialV;
  }

}

结果应该是这样的 什么时候创建

stream = new IntegerStream(10);

    > stream.next()
    10
    > stream.next()
    11
    > stream.next()
    12

但是当我尝试编译它时出现错误:

operator + cannot be applied to Integer,int

任何人都可以帮助我..

1 个答案:

答案 0 :(得分:6)

在此声明中

public class IntegerStream<Integer> extends stream{

Integer之间的名称<>声明了一个名为Integer的类型变量,它不是指类型java.lang.Integer

它也是一种无界类型,因此可以使用任何类型。因此,运算符+不能应用于该类型的操作数。

你可能想要的是

public class IntegerStream extends stream<Integer> {

以便绑定Integerjava.lang.Integer)作为通用stream类的类型参数(将其设为大写Stream)。