@@ -82,8 +82,24 @@ private static char getCharImpl(Object array, int index) {
8282 }
8383
8484 public static double getDouble (Object array , int index ) {
85- checkArgument (array instanceof double []);
86- return getDoubleImpl (array , index );
85+ if (array instanceof double []) {
86+ return getDoubleImpl (array , index );
87+ } else if (array instanceof byte []) {
88+ return getByteImpl (array , index );
89+ } else if (array instanceof char []) {
90+ return getCharImpl (array , index );
91+ } else if (array instanceof float []) {
92+ return getFloatImpl (array , index );
93+ } else if (array instanceof int []) {
94+ return getIntImpl (array , index );
95+ } else if (array instanceof long []) {
96+ return getLongImpl (array , index );
97+ } else if (array instanceof short []) {
98+ return getShortImpl (array , index );
99+ } else {
100+ checkArgument (false );
101+ return 0 ;
102+ }
87103 }
88104
89105 private static double getDoubleImpl (Object array , int index ) {
@@ -92,8 +108,22 @@ private static double getDoubleImpl(Object array, int index) {
92108 }
93109
94110 public static float getFloat (Object array , int index ) {
95- checkArgument (array instanceof float []);
96- return getFloatImpl (array , index );
111+ if (array instanceof float []) {
112+ return getFloatImpl (array , index );
113+ } else if (array instanceof byte []) {
114+ return getByteImpl (array , index );
115+ } else if (array instanceof char []) {
116+ return getCharImpl (array , index );
117+ } else if (array instanceof int []) {
118+ return getIntImpl (array , index );
119+ } else if (array instanceof long []) {
120+ return getLongImpl (array , index );
121+ } else if (array instanceof short []) {
122+ return getShortImpl (array , index );
123+ } else {
124+ checkArgument (false );
125+ return 0 ;
126+ }
97127 }
98128
99129 private static float getFloatImpl (Object array , int index ) {
@@ -102,8 +132,18 @@ private static float getFloatImpl(Object array, int index) {
102132 }
103133
104134 public static int getInt (Object array , int index ) {
105- checkArgument (array instanceof int []);
106- return getIntImpl (array , index );
135+ if (array instanceof int []) {
136+ return getIntImpl (array , index );
137+ } else if (array instanceof byte []) {
138+ return getByteImpl (array , index );
139+ } else if (array instanceof char []) {
140+ return getCharImpl (array , index );
141+ } else if (array instanceof short []) {
142+ return getShortImpl (array , index );
143+ } else {
144+ checkArgument (false );
145+ return 0 ;
146+ }
107147 }
108148
109149 private static int getIntImpl (Object array , int index ) {
@@ -117,8 +157,20 @@ public static int getLength(Object array) {
117157 }
118158
119159 public static long getLong (Object array , int index ) {
120- checkArgument (array instanceof long []);
121- return getLongImpl (array , index );
160+ if (array instanceof long []) {
161+ return getLongImpl (array , index );
162+ } else if (array instanceof byte []) {
163+ return getByteImpl (array , index );
164+ } else if (array instanceof char []) {
165+ return getCharImpl (array , index );
166+ } else if (array instanceof int []) {
167+ return getIntImpl (array , index );
168+ } else if (array instanceof short []) {
169+ return getShortImpl (array , index );
170+ } else {
171+ checkArgument (false );
172+ return 0 ;
173+ }
122174 }
123175
124176 private static long getLongImpl (Object array , int index ) {
@@ -127,8 +179,14 @@ private static long getLongImpl(Object array, int index) {
127179 }
128180
129181 public static short getShort (Object array , int index ) {
130- checkArgument (array instanceof short []);
131- return getShortImpl (array , index );
182+ if (array instanceof short []) {
183+ return getShortImpl (array , index );
184+ } else if (array instanceof byte []) {
185+ return getByteImpl (array , index );
186+ } else {
187+ checkArgument (false );
188+ return 0 ;
189+ }
132190 }
133191
134192 private static short getShortImpl (Object array , int index ) {
@@ -137,26 +195,29 @@ private static short getShortImpl(Object array, int index) {
137195 }
138196
139197 public static void set (Object array , int index , Object value ) {
140- if (array instanceof boolean []) {
141- setBooleanImpl (array , index , (Boolean ) value );
142- } else if (array instanceof byte []) {
143- setByteImpl (array , index , (Byte ) value );
144- } else if (array instanceof char []) {
145- setCharImpl (array , index , (Character ) value );
146- } else if (array instanceof double []) {
147- setDoubleImpl (array , index , (Double ) value );
148- } else if (array instanceof float []) {
149- setFloatImpl (array , index , (Float ) value );
150- } else if (array instanceof int []) {
151- setIntImpl (array , index , (Integer ) value );
152- } else if (array instanceof long []) {
153- setLongImpl (array , index , (Long ) value );
154- } else if (array instanceof short []) {
155- setShortImpl (array , index , (Short ) value );
156- } else {
157- checkArgument (array instanceof Object []);
198+ if (array instanceof Object []) {
158199 Object [] typedArray = (Object []) array ;
159200 typedArray [index ] = value ;
201+ } else {
202+ if (value instanceof Boolean ) {
203+ setBoolean (array , index , ((Boolean ) value ).booleanValue ());
204+ } else if (value instanceof Byte ) {
205+ setByte (array , index , ((Byte ) value ).byteValue ());
206+ } else if (value instanceof Character ) {
207+ setChar (array , index , ((Character ) value ).charValue ());
208+ } else if (value instanceof Short ) {
209+ setShort (array , index , ((Short ) value ).shortValue ());
210+ } else if (value instanceof Integer ) {
211+ setInt (array , index , ((Integer ) value ).intValue ());
212+ } else if (value instanceof Long ) {
213+ setLong (array , index , ((Long ) value ).longValue ());
214+ } else if (value instanceof Float ) {
215+ setFloat (array , index , ((Float ) value ).floatValue ());
216+ } else if (value instanceof Double ) {
217+ setDouble (array , index , ((Double ) value ).doubleValue ());
218+ } else {
219+ checkArgument (false );
220+ }
160221 }
161222 }
162223
@@ -171,8 +232,21 @@ private static void setBooleanImpl(Object array, int index, boolean value) {
171232 }
172233
173234 public static void setByte (Object array , int index , byte value ) {
174- checkArgument (array instanceof byte []);
175- setByteImpl (array , index , value );
235+ if (array instanceof byte []) {
236+ setByteImpl (array , index , value );
237+ } else if (array instanceof double []) {
238+ setDoubleImpl (array , index , value );
239+ } else if (array instanceof float []) {
240+ setFloatImpl (array , index , value );
241+ } else if (array instanceof int []) {
242+ setIntImpl (array , index , value );
243+ } else if (array instanceof long []) {
244+ setLongImpl (array , index , value );
245+ } else if (array instanceof short []) {
246+ setShortImpl (array , index , value );
247+ } else {
248+ checkArgument (false );
249+ }
176250 }
177251
178252 private static void setByteImpl (Object array , int index , byte value ) {
@@ -181,8 +255,19 @@ private static void setByteImpl(Object array, int index, byte value) {
181255 }
182256
183257 public static void setChar (Object array , int index , char value ) {
184- checkArgument (array instanceof char []);
185- setCharImpl (array , index , value );
258+ if (array instanceof char []) {
259+ setCharImpl (array , index , value );
260+ } else if (array instanceof double []) {
261+ setDoubleImpl (array , index , value );
262+ } else if (array instanceof float []) {
263+ setFloatImpl (array , index , value );
264+ } else if (array instanceof int []) {
265+ setIntImpl (array , index , value );
266+ } else if (array instanceof long []) {
267+ setLongImpl (array , index , value );
268+ } else {
269+ checkArgument (false );
270+ }
186271 }
187272
188273 private static void setCharImpl (Object array , int index , char value ) {
@@ -201,8 +286,13 @@ private static void setDoubleImpl(Object array,int index, double value) {
201286 }
202287
203288 public static void setFloat (Object array , int index , float value ) {
204- checkArgument (array instanceof float []);
205- setFloatImpl (array , index , value );
289+ if (array instanceof float []) {
290+ setFloatImpl (array , index , value );
291+ } else if (array instanceof double []) {
292+ setDoubleImpl (array , index , value );
293+ } else {
294+ checkArgument (false );
295+ }
206296 }
207297
208298 private static void setFloatImpl (Object array , int index , float value ) {
@@ -211,8 +301,17 @@ private static void setFloatImpl(Object array, int index, float value) {
211301 }
212302
213303 public static void setInt (Object array , int index , int value ) {
214- checkArgument (array instanceof int []);
215- setIntImpl (array , index , value );
304+ if (array instanceof int []) {
305+ setIntImpl (array , index , value );
306+ } else if (array instanceof double []) {
307+ setDoubleImpl (array , index , value );
308+ } else if (array instanceof float []) {
309+ setFloatImpl (array , index , value );
310+ } else if (array instanceof long []) {
311+ setLongImpl (array , index , value );
312+ } else {
313+ checkArgument (false );
314+ }
216315 }
217316
218317 private static void setIntImpl (Object array , int index , int value ) {
@@ -221,8 +320,15 @@ private static void setIntImpl(Object array, int index, int value) {
221320 }
222321
223322 public static void setLong (Object array , int index , long value ) {
224- checkArgument (array instanceof long []);
225- setLongImpl (array , index , value );
323+ if (array instanceof long []) {
324+ setLongImpl (array , index , value );
325+ } else if (array instanceof double []) {
326+ setDoubleImpl (array , index , value );
327+ } else if (array instanceof float []) {
328+ setFloatImpl (array , index , value );
329+ } else {
330+ checkArgument (false );
331+ }
226332 }
227333
228334 private static void setLongImpl (Object array , int index , long value ) {
@@ -231,8 +337,19 @@ private static void setLongImpl(Object array, int index, long value) {
231337 }
232338
233339 public static void setShort (Object array , int index , short value ) {
234- checkArgument (array instanceof short []);
235- setShortImpl (array , index , value );
340+ if (array instanceof short []) {
341+ setShortImpl (array , index , value );
342+ } else if (array instanceof double []) {
343+ setDoubleImpl (array , index , value );
344+ } else if (array instanceof float []) {
345+ setFloatImpl (array , index , value );
346+ } else if (array instanceof int []) {
347+ setIntImpl (array , index , value );
348+ } else if (array instanceof long []) {
349+ setLongImpl (array , index , value );
350+ } else {
351+ checkArgument (false );
352+ }
236353 }
237354
238355 private static void setShortImpl (Object array , int index , short value ) {
0 commit comments