Die Hauptforschung in diesem Artikel besteht darin, Java -Methodensignaturen zu erhalten, und die folgenden Beispiele sind spezifische Implementierungsbeispiele.
Beispielcode:
Paket com.yunshouhu; import Java.lang.reflect.field; import Java.lang.reflect.method; Importion Java.lang.reflect.type; com.alibaba.fastjson.parser.deserializer.objectdeserializer;/*** Get Java -Methode Signatur, siehe javah -jni classPath/javap -s classPath. * @Author Wujianhua * @date 5. September 2017 um 3:25:51 Uhr * @url http://blog.csdn.net/earbao */public class Asmutilsforjavah {public static void Main (String [] Argumente) Ausnahme ausnahm {System.out.println (Asmutilsforjavah.getDesc (System.class)); System.out.println (Asmutilsforjavah.getDesc (String.class)); s ymstem.out.println (Asmutilsforjavah.getDesc (integer.class)); method = asmutilsforjavah.class.getDeclaredMethod ("main", String []. Klasse); System.out.println ("Javah -jni "); System.out.println (Asmutilsforjavah.getDesc (Methode)); System.out.println (Asmutilsforjavah.GetType (System.Class); System.out.println (AsmutilsforForforeForForFor staChavah. String vMname) {Final String lowerVmname = vmname.tolowerCase (); return lowerVmname.Contains ("dalvik") || lowerVmname.contains ("lemur");} public static boolean isandroid () {return isandroid (System.getProperty ("java.vm.name"));} public static String getDesc (endgültige Methodenmethode) {endgültige Stringbuffer bufer buffer (). method.getParameterTypes (); für (int i = 0; i <Typen.Length; ++ i) {buf.Append (getDesc (Typen [i]);} buf.Append (")"); buf.append (getDesc (method.getReturnTracks ()) return buf.ToString (); {if (returnType.iprimitive ()) {return getPrimitivalTter (returnTyPe);} if (returnType.isarray ()) {return "[" + getDesc (returnType.getComponentType ()); parameterType) {if (parameterType.isarray ()) {return "[" + getDesc (parameterType.getComponentType ());} if (! parameterType.isprimitive ()) {endgültiger String clsname = parameterType.getName (); GetPrimitiveletter (parameterType);} public static String getPrimitiveletter (endgültige Klasse <?> Typ) {if (Integer . (double.type.equals (Typ)) {return "d";} Neue IllegalStateException ("Typ:" + type.getCanonicalName () + "ist kein primitiver Typ");} public static type getMethodype (endgültige Klasse <?> Clazz, endgültige String -Methode) {try {clazz method = clazz.gazz. Class [0]); return methode.getgenericReturnType ();} catch (Exception ex) {return null;}} öffentlicher statischer Typ GetfieldType (endgültige Klasse <?> Clazz, endgültige String -Feldname) {Try {Final Field Field = Clazz.getfield (Fieldname); return field. Parsearray (endgültige Sammlung, endgültiger ObjectDeserializer Deser, endgültiger Standard -JsonParser -Parser, endgültiger Typ, endgültiger Objektfeldname) {endgültig JSonlexer Lexer = Parser.getLexer (); if (Lexer.token () == 8) {Lexer.nextToken (16); = Deser.Deserialze (Parser, Typ, (Objekt) Index); Collection.Add (Element); ++ Index; if (Lexer.token ()!Das obige ist der gesamte Inhalt dieses Artikels über das Erhalten von Instanzcode für Java -Methodensignaturen. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!