2016-10-07 3 views
0

У меня есть два числа, они могут быть целыми или плавными, как добавить их в java, объект Number не может добавить друг друга.Добавьте два числа, не зная точного типа в Java

Я могу только проверить там тип (класс) и конвертировать по одному, это уродливо (много, если еще) и неясное, любая идея лучше?

ответ

2

Вы можете вызвать Number.doubleValue() и добавить:

Number n1 = new Double(10.3d); 
Number n2 = new Integer(12); 
System.out.println(n1.doubleValue() + n2.doubleValue()); 
0

Если потеря точности является приемлемым, вы можете добавить их дважды (или даже BigDecimal) значения:

double result = a.doubleValue() + b.doubleValue(); 

В противном случае, вы будут реализовывать все случаи (которые вы можете делать только для обычных типов, поскольку Number является абстрактным классом).

Если честно, это, скорее всего, будет признаком плохой концепции.

Смежные вопросы