A ClassCastException
появляется, когда вы пытаетесь применить экземпляр объекта к типу, которого нет. Кастинг работает только тогда, когда заброшенный объект следует за отношением «есть» к типу, который вы пытаетесь выполнить. Для примера
Apple myApple = new Apple();
Fruit myFruit = (Fruit)myApple;
Это работает, потому что яблоко - это «плод». Однако, если мы отменим это.
Fruit myFruit = new Fruit();
Apple myApple = (Apple)myFruit;
Это вызовет исключение ClasCastException, потому что Fruit не является (всегда) Apple.
Хорошей практикой является защита любых явных приемов с помощью instanceof
сначала проверьте:
if (myApple instanceof Fruit) {
Fruit myFruit = (Fruit)myApple;
}
Вы должны будете использовать CPU
, который поддерживает набор команд SSE4.2
; например. Nehalem
или новее - иначе вы можете запускать только x86
изображения, что идеально подходит для тестирования. Я использую их по соображениям производительности, даже если бы смог запустить x86_64
изображения. ARM64
аппаратное обеспечение - это то, что на самом деле имеет значение для тестирования в наши дни.
Этот вопрос, вероятно, должен раскрыть, какой CPU
вы даже используете, который может быть устаревшим CPU
, учитывая дату первоначального выпуска архитектуры Nehalem
, которая представила SSE4.2
.
Для справки: Intel .