那为什么FutureTask<Integer> fu=new FutureTask<Integer>(ca);换成Future<Interger> fu就会报错
时间: 2024-04-04 15:31:07 浏览: 91
比较java中Future与FutureTask之间的关系
在Java中,泛型是Java 5之后引入的一个特性,它可以让我们在编译时就能够检查类型安全,从而避免类型转换异常等问题。
在这个问题中,FutureTask是一个泛型类,它的泛型类型是指它的返回值类型,如果你将其改为Future<Integer> fu = new FutureTask<>(ca),编译器会认为你声明的是一个返回值类型为Integer的Future对象,但是实际上你创建的是一个FutureTask对象,两者的类型不匹配,因此会报错。
如果你想要使用Future接口来引用FutureTask对象,可以将其声明为 FutureTask<Integer> fu = new FutureTask<>(ca),这样就可以通过FutureTask实现Future接口的功能,同时保留了泛型类型的正确性。
阅读全文