java中callable接口通过泛型参数v声明返回值类型,如callable,确保编译期类型安全;配合future使用,get()方法直接返回指定类型,无需强制转换。

Java 中 Callable 接口通过泛型参数直接声明返回值类型,无需强制转换,编译期即可保证类型安全。
泛型声明方式
Callable 是一个带泛型的函数式接口,定义为:
public interface Callable
其中 V 就是返回值的类型参数。使用时只需在尖括号中指定具体类型,例如 Callable<string></string> 表示 call() 方法返回 String。
常见用法示例
- 返回基本类型包装类:
Callable<integer></integer>→call()返回int的包装类型 - 返回自定义对象:
Callable<user></user>→ 直接返回User实例,无需转型 - 返回空类型(不推荐):
Callable<void></void>→call()必须返回null,语义上表示“无实际返回值”
配合 Future 获取结果
提交 Callable 到线程池后,返回 Future<v></v>,其 get() 方法返回的类型与泛型一致:
Future
BigDecimal result = future.get(); // 类型已确定,无需 cast
注意点
- 不能使用原始类型(如
Callable<int></int>),必须用包装类(Callable<integer></integer>) - 泛型类型在运行时被擦除,但编译器会校验调用一致性,保障类型安全
- 若需多类型返回,可封装为自定义类(如
Result<t></t>),再作为Callable<result>></result>
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











