Может ли конструктор Java продвигать тип?

#java #types #constructor #primitive

#java #типы #конструктор #примитив

Вопрос:

Если я правильно понимаю, методы Java могут продвигать типы: например, если параметры метода равны двум целым числам, в вызов можно передать две байтовые переменные, и они будут повышены до целых чисел. Верно ли это для конструкторов? Могут ли две байтовые переменные быть переданы конструктору, параметры которого равны двум целым числам?

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

1. Почему бы не попробовать это?

2. Да, вы можете это сделать. Я выяснил это, открыв IDE, введя его и запустив. Не так уж и сложно.

3. Перевернув это с ног на голову: почему не мог ctor действовать примерно так же, как метод в этом отношении? Какая польза была бы от наличия другой семантики?

Ответ №1:

Да, вы можете передавать байтовые аргументы целочисленным параметрам в constructor. То, что при этом происходит, называется расширяющим примитивным преобразованием