Значение кода Java (Object []) (Object []) arrayOfBytes [1]
Я столкнулся с какой-то частью кода, и я не могу найти смысл этой конкретной части:
Object[] arrayOfObject = (Object[])(Object[])localObjectInputStream.readObject();
Help[] arrayOfHelp = (Help[])(Help[])arrayOfObject[0];
Вопрос касается (Object[])
в первой строке и (Help[])
повторяется дважды. Он очень похож на кастинг, но тогда почему двойное кастинг в одном типе?
Ваша помощь очень ценится!
Ответы
Ответ 1
Нет оснований для применения одного и того же актера дважды, это просто ошибка */quirk исходного автора.
Есть очень мало мест, где имеет смысл использовать двойное литье даже с разными типами. Но с тем же типом, нет, не имеет к этому никакого смысла.
* (довольно безвредный, хотя это не очень)
Ответ 2
Нет смысла делать это. Не делает дополнительной разницы, но просто убивает читаемость и вызывает путаницу.
Ответ 3
Я предполагаю, что это просто "плохое" (по смыслу стиль и ненужное) программирование.
Ответ 4
Похоже на некоторый код, сгенерированный фреймворком, где генератор кода может иметь некоторую ошибочную генерацию кода при приведении типов или может быть простой ошибкой копирования-вставки, когда кто-то мог вставить его дважды. Но программно нет никакой выгоды от кастинга дважды.