gpt4 book ai didi

java - 比较未知整数类型的 Number 对象

转载 作者:行者123 更新时间:2023-12-02 09:07:26 32 4
gpt4 key购买 nike

我试图比较两个在运行时类型未知的Object,但至少可以保证该类型是某种形式的Number。有没有一种方法可以比较基类为 NumberObject 而无需将对象显式转换为 Java 的整数类型之一?

例如:

Object objectInt1 = (Integer) 5;
Object objectInt2 = (Integer) 6;

if (objectInt1 > objectInt2) {
// Clearly won't compile
}

if ((Number) objectInt1 > (Number) objectInt2) {
// This of course won't compile either
}

我认为实现此目的的唯一方法是使用 instanceof 并检查每个整型类型,并进行显式转换。但也许有一种更干净的方法来做到这一点。

最佳答案

如果您知道它们将是 Number,您可以使用:

Object object1 = Integer.valueOf(5);
Object object2 = Float.valueOf(6);

Number number1 = (Number) object1;
Number number2 = (Number) object2;

if (number1.doubleValue() < number2.doubleValue()) {
System.out.println("number1 < number2");
}

当然,您也可以内联进行转换。

关于java - 比较未知整数类型的 Number 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59700073/

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