gpt4 book ai didi

java - 如何添加两个Integer类(instanceof)

转载 作者:行者123 更新时间:2023-12-02 05:55:35 24 4
gpt4 key购买 nike

我已经实现了这个方法:

    public static Object findInstance(Object value);

方法采用对象值并将类类型(如果可能)转换为 Integer 或 Double。调用 findInstance 后,我想检查我的类类型,如下所示:

    value.getClass();

结果是 java.lang.Double 或 java.lang.Integer.(如预期)

但我无法在该对象上调用 Integer(或 Double)类中的任何方法。

最终结果应该是:

    value1=findInstance(value1);
value2=findInstance(value2);
int sum=value1.intValue()+value2.intValue();
System.out.println("Sum:"+sum);

有人可以解释为什么我不能调用方法 intValue() 吗?

最佳答案

对此的一些评论:首先,azurefrog 陈述了正确的原因:您的变量是 Object 类型,而不是 Number 类型。

第二:如果您想有条件地在对象上调用 intValue() 或 doubleValue(),请让您的方法返回 Number 类型而不是 Object 类型的变量。

第三:我不知道您正在执行的任务,因此您可能有充分的理由这样做。尽管如此,请尝试以不需要任何类型的强制转换操作或调用 instanceof 的方式编写代码。通常,这些操作的存在是“设计味道”的标志。可能不是你的情况,但在我并不总是那么谦虚的观点中,这似乎有点可疑。

关于java - 如何添加两个Integer类(instanceof),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com