Значение кода Java (Object []) (Object []) arrayOfBytes [1]

Я столкнулся с какой-то частью кода, и я не могу найти смысл этой конкретной части:

Object[] arrayOfObject = (Object[])(Object[])localObjectInputStream.readObject();
Help[] arrayOfHelp = (Help[])(Help[])arrayOfObject[0];

Вопрос касается (Object[]) в первой строке и (Help[]) повторяется дважды. Он очень похож на кастинг, но тогда почему двойное кастинг в одном типе?

Ваша помощь очень ценится!

Ответы

Ответ 1

Нет оснований для применения одного и того же актера дважды, это просто ошибка */quirk исходного автора.

Есть очень мало мест, где имеет смысл использовать двойное литье даже с разными типами. Но с тем же типом, нет, не имеет к этому никакого смысла.


* (довольно безвредный, хотя это не очень)

Ответ 2

Нет смысла делать это. Не делает дополнительной разницы, но просто убивает читаемость и вызывает путаницу.

Ответ 3

Я предполагаю, что это просто "плохое" (по смыслу стиль и ненужное) программирование.

Ответ 4

Похоже на некоторый код, сгенерированный фреймворком, где генератор кода может иметь некоторую ошибочную генерацию кода при приведении типов или может быть простой ошибкой копирования-вставки, когда кто-то мог вставить его дважды. Но программно нет никакой выгоды от кастинга дважды.