Вы можете перенести любой понравившийся вам тип на любой другой. Это не означает, что ваш код будет гарантированно работать после любого переноса типа.
Рассмотрим этот пример.
private Class aClass = Class.class;
Здесь у нас есть объект Class с именем aClass, который хранит ссылку на класс Class. Как странно!
Поскольку все классы в Java расширяют объект. Мы можем выполнить миграцию типов из класса в объект, и не будем сталкиваться с ошибками в нашем коде позже.
private Object aClass = Class.class;
Выше все еще действует Java.
Теперь, если мы хотим преобразовать, скажем, String или char в логическое значение, мы получим всплывающее окно, говорящее, что оно может ' т конвертировать. Мы можем щелкнуть игнорировать, чтобы он перенес тип, но теперь он будет недействительным Java, так как вы пытаетесь присвоить тип char или String логическому типу.
Вот снимок экрана, на котором показана эта ошибка:
IntelliJ не изменяет присвоение переменной, а только ее тип. Исправление любых ошибок компиляции в результате миграции зависит от вас.