//错误代码
class MyCallable<Integer> implements Callable<Integer>
{
int sum=0;
@Override
public Integer call() throws Exception {
for(int i=0;i<=100;i++)
{
System.out.println(Thread.currentThread().getName()+"输出"+i);
sum+=i;
}
return sum;//报错
}
}
//正确代码
class MyCallable<Integer> implements Callable<java.lang.Integer>
{
int sum=0;
@Override
public java.lang.Integer call() throws Exception {
for(int i=0;i<=100;i++)
{
System.out.println(Thread.currentThread().getName()+"输出"+i);
sum+=i;
}
return sum;
}
}
我想实现Callable接口,为什么<>里面不能填Integer,而是必须填java.lang.Integer,两个不是一样吗
class MyCallable<Integer> implements Callable<Integer>
你这么定义等价于 Integer 是一个你自己定义的符号 和这么写没区别
class MyCallable<T> implements Callable<Integer>
class MyCallable implements Callable<Integer>
{
int sum=0;
@Override
public Integer call() throws Exception {
for(int i=0;i<=100;i++)
{
System.out.println(Thread.currentThread().getName()+"输出"+i);
sum+=i;
}
return sum;//报错
}
}
应该是用的java关键字了吧