Java代码(Object [])(Object [])arrayOfBytes [1]的含义

时间:2018-01-29 08:06:21

标签: java casting

我遇到了一些代码而我找不到这个特定部分的含义:

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

问题涉及第一行(Object[])(Help[])重复两次。它看起来非常像铸造,但为什么双重铸造成相同的类型?

非常感谢您的帮助!

4 个答案:

答案 0 :(得分:30)

没有必要这样做。没有多余的差别,但只会破坏可读性并导致混淆。

答案 1 :(得分:16)

没有充分理由两次申请同一演员,这只是原作者的错误* /怪癖。

即使是不同类型的双重演员也很少有意义。但是使用相同的类型,不,根本没有任何意义。

* (一个相当无害的,虽然它并不漂亮)

答案 2 :(得分:4)

我认为这只是一个"坏" (在风格和不必要的意义上)编程。

答案 3 :(得分:0)

好像是一些框架生成的代码,其中代码生成器可能在类型转换中生成了一些错误代码,或者可能是一个简单的复制粘贴错误,可能有人粘贴了两次。 但是程序化的转换没有任何好处。