Когда часы помещаются в точку останова, отладчик Java показывает упакованное целое число вместо примитива int
Этот простой пример демонстрирует проблему:
public class Main {
interface Person {
default int amountOfHands() {
return 2;
}
}
public static class BasicPerson implements Person {
int numberOfFaces() {
return 1;
}
}
public static void main(String[] args) {
System.out.println("Put a breakpoint here");
}
}
Я запустил этот код в IntelliJ IDEA в режиме отладки и добавил два метода в основной метод:
new BasicPerson().amountOfHands();
new BasicPerson().numberOfFaces();
Оба метода должны возвращать примитив int, однако только второе наблюдение (метод класса) показывает примитив int, тогда как первый (метод интерфейса по умолчанию) показывает объект Integer в штучной упаковке.
Это почему? Это ошибка?
1 ответ
Я полагаю, это ошибка в IntelliJ IDEA. В Eclipse оба выражения оцениваются в примитивные значения, как и ожидалось.