private Object convertToArray ( String pType , String pValue ) { // It's an array String t = pType . substring ( 1 , 2 ) ; Class valueType ; if ( t . equals ( "L" ) ) { // It's an object-type String oType = pType . substring ( 2 , pType . length ( ) - 1 ) . replace ( ' ' , ' ' ) ; valueType = ClassUtil . classForName ( oType ) ; if ( valueType == null ) { throw new IllegalArgumentException ( "No class of type " + oType + "found" ) ; } } else { valueType = TYPE_SIGNATURE_MAP . get ( t ) ; if ( valueType == null ) { throw new IllegalArgumentException ( "Cannot convert to unknown array type " + t ) ; } } String [ ] values = EscapeUtil . splitAsArray ( pValue , EscapeUtil . PATH_ESCAPE , "," ) ; Object ret = Array . newInstance ( valueType , values . length ) ; int i = 0 ; for ( String value : values ) { Array . set ( ret , i ++ , value . equals ( "[null]" ) ? null : convertFromString ( valueType . getCanonicalName ( ) , value ) ) ; } return ret ; }
Convert an array