创建泛型类时如何使用Object类型?计算器类加法实现咨询
问题解决思路与实现代码
首先纠正一个误区:你写的class Calculator<Object>里的Object是自定义的泛型参数名称,并非Java自带的java.lang.Object,这会导致代码逻辑混乱。如果要基于Object类型处理数值相加,不需要额外声明泛型,直接用Object作为参数和返回类型即可。
实现思路
- 先判断输入参数的类型,确保是
Integer或Float - 根据类型执行对应的加法操作
- 将结果以
Object类型返回
完整实现代码
class Calculator { // 实现Integer、Float类型的两数相加,返回Object类型 Object addition(Object first, Object second) { if (first instanceof Integer && second instanceof Integer) { return (Integer) first + (Integer) second; } else if (first instanceof Float && second instanceof Float) { return (Float) first + (Float) second; } else { // 对不支持的类型抛出异常,也可根据需求返回null throw new IllegalArgumentException("仅支持Integer和Float类型的相加"); } } }
代码说明
- 移除了错误的泛型声明,直接使用
Object作为参数和返回类型 - 通过
instanceof判断参数类型,分别处理整数和浮点数的加法逻辑 - 加法结果会自动装箱为对应的包装类,天然符合
Object类型的返回要求 - 增加异常处理,明确提示不支持的输入类型
内容的提问来源于stack exchange,提问作者Onkar Dighe
相关产品推荐
相关产品推荐

