среда, 7 ноября 2007 г.

Java Puzzle 56: Big Problem

Проверим знание класса BigInteger. Что напечатает следующая программа?
BigInteger value = new BigInteger("1000000");
value.add(new BigInteger("1000000"));
System.out.println(value);

А вот и нет! Не 2 миллиона, а всего 1. Авторы данного API использовали не вполне корректные имена для методов неизменяемого (immutable) объекта, что и вводит пользователей в заблуждение. Чтобы исправить ошибку надо сделать так:
BigInteger value = new BigInteger("1000000");
value = value.add(new BigInteger("1000000"));
System.out.println(value);

Комментариев нет:

Отправить комментарий