Thanks Scott. I thought I tried that one... Now do you know an easy way to convert java.lang.object[] or whatever to the signature style [Ljava.lang.Object; (other then string manipulation)? Otherwise, I'll write a conversion function.
-dain Scott M Stark wrote: > The syntax for obtaining array classes using Class.forName is > rather wacked, but it does work. For example, to get the > class for an Object[], use > > Class oaClass = Class.forName("[Ljava.lang.Object;"); > > Both the "[L" prefix and trailing ";" are required. > The javadoc for the Class.getName method describe the syntax > required. > > xxxxxxxxxxxxxxxxxxxxxxxx > Scott Stark > Chief Technology Officer > JBoss Group, LLC > xxxxxxxxxxxxxxxxxxxxxxxx > >>No new feature. Class.forName docs say you can load arrays but it is >>broken. Here is the code I use now: >> >>private Class convertToJavaClass(String name) throws DeploymentException { >> // Check primitive first >> for (int i = 0; i < PRIMITIVES.length; i++) { >> if(name.equals(PRIMITIVES[i])) { >> return PRIMITIVE_CLASSES[i]; >> } >> } >> >> int arraySize = 0; >> while(name.endsWith("[]")) { >> name = name.substring(0, name.length()-2); >> arraySize++; >> } >> >> try { >> // get the base class >> Class c = entity.getClassLoader().loadClass(name); >> >> // if we have an array get the array class >> if(arraySize > 0) { >> int[] dimensions = new int[arraySize]; >> for(int i=0; i<arraySize; i++) { >> dimensions[i]=1; >> } >> c = Array.newInstance(c, dimensions).getClass(); >> } >> >> return c; >> } catch(ClassNotFoundException e) { >> throw new DeploymentException("Parameter class not found: " + >> name); >> } >>} >> >>This is lame but works. >> >>-dain >> >> > > > > _______________________________________________ > Jboss-development mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-development > _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development