1 27 package ch.ethz.inf.iks.jvmai.jvmdi; 28 29 import java.util.*; 31 import java.io.*; 32 import java.lang.reflect.*; 33 34 35 41 public 42 class JNIUtil { 43 44 45 public static String jniSignature(Method m) 46 { 47 Class [] params = m.getParameterTypes(); 48 StringBuffer result = new StringBuffer (); 49 result.append("("); 50 for (int i = 0; i < params.length; i++) 51 result.append(jniSignature(params[i])); 52 result.append(")" + jniSignature(m.getReturnType())); 53 return result.toString(); 54 55 } 56 57 58 public static String jniSignature(Class c) 59 { 60 if (c.isPrimitive()) 61 { 62 String result = null; 63 if ((c.toString()).equals("int")) result = "I"; 64 if ((c.toString()).equals("byte")) result = "B"; 65 if ((c.toString()).equals("short")) result = "S"; 66 if ((c.toString()).equals("long")) result = "J"; 67 if ((c.toString()).equals("double")) result = "D"; 68 if ((c.toString()).equals("float")) result = "F"; 69 if ((c.toString()).equals("char")) result = "C"; 70 if ((c.toString()).equals("boolean")) result = "Z"; 71 if ((c.toString()).equals("void")) result = "V"; 72 return result; 73 } 74 else if (c.isArray()) 75 return "[" + jniSignature(c.getComponentType()); 76 else 77 return "L" + (c.getName()).replace('.','/') + ";"; 78 } 79 80 81 82 } 83 84 85 86 87 | Popular Tags |