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




casting (3)

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

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

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

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

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

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

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


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


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







casting