Java--Reflect(反射)專題3——獲取類的方法的所有資訊
阿新 • • 發佈:2019-02-02
程式碼演示說明:常見資料型別的類型別。
package com.test; public class test { public static void main(String[] args) { Class c1=int.class;//int的類型別 Class c2=String.class;//string 類的類型別 Class c3=double.class; Class c4=Double.class; Class c5=void.class; System.out.println(c1.getName()); System.out.println(c2.getName());//列印類的全稱 System.out.println(c2.getSimpleName());//列印不帶包名的 System.out.println(c5.getName()); } }
輸出:
run:
int
java.lang.String
String
void
另外一個案例來獲取類的所有資訊:
package com.test; import java.lang.reflect.Method; public class test { //列印類的資訊,包括類的成員函式,成員變數 public static void main(String[] args) { String s="hello"; Integer integer=8; printClassMessage(s); // printClassMessage(integer); } public static void printClassMessage(Object obj){ //要獲取類的資訊,首先獲取類的類型別 Class c=obj.getClass();//傳遞的是哪個子類的物件,c就是該子類的類型別 //獲取類的名稱 System.out.println("類的名稱是:"+c.getName()); /* 方法也是物件,是Mehtod類的方法,一個成員方法就是一個Method類的物件 getMethods()方法獲取的是所有public的函式,包括繼承父類而來的。 getDeclaredMethods()獲取的是所有該類自己宣告的方法,不論訪問許可權, 父類繼承的不算,得到的是一個數組 */ Method[] ms; ms=c.getMethods(); // ms=c.getDeclaredMethods(); for(int i=0;i<ms.length;i++){ //得到方法的名稱 System.out.print("第"+(i+1)+"個方法的方法名"+ms[i].getName()+"("); //得到方法的引數型別的類型別 Class[] paramType=ms[i].getParameterTypes(); for(Class class1:paramType){ System.out.print(class1.getName()+","); } System.out.print(")"); //得到方法的返回值型別的類型別 Class returnType=ms[i].getReturnType(); //接下來列印返回值型別的名字 System.out.println("第"+(i+1)+"個方法的返回值型別"+returnType.getName()); } } }
輸出:
輸出:
run:
類的名稱是:java.lang.String第1個方法的方法名equals(java.lang.Object,)第1個方法的返回值型別boolean
第2個方法的方法名toString()第2個方法的返回值型別java.lang.String
第3個方法的方法名hashCode()第3個方法的返回值型別int
第4個方法的方法名compareTo(java.lang.String,)第4個方法的返回值型別int
第5個方法的方法名compareTo(java.lang.Object,)第5個方法的返回值型別int
第6個方法的方法名indexOf(java.lang.String,int,)第6個方法的返回值型別int
第7個方法的方法名indexOf(java.lang.String,)第7個方法的返回值型別int
第8個方法的方法名indexOf(int,int,)第8個方法的返回值型別int
第9個方法的方法名indexOf(int,)第9個方法的返回值型別int
第10個方法的方法名valueOf(int,)第10個方法的返回值型別java.lang.String
第11個方法的方法名valueOf(long,)第11個方法的返回值型別java.lang.String
第12個方法的方法名valueOf(float,)第12個方法的返回值型別java.lang.String
第13個方法的方法名valueOf(boolean,)第13個方法的返回值型別java.lang.String
第14個方法的方法名valueOf([C,)第14個方法的返回值型別java.lang.String
第15個方法的方法名valueOf([C,int,int,)第15個方法的返回值型別java.lang.String
第16個方法的方法名valueOf(java.lang.Object,)第16個方法的返回值型別java.lang.String
第17個方法的方法名valueOf(char,)第17個方法的返回值型別java.lang.String
第18個方法的方法名valueOf(double,)第18個方法的返回值型別java.lang.String
第19個方法的方法名charAt(int,)第19個方法的返回值型別char
第20個方法的方法名codePointAt(int,)第20個方法的返回值型別int
第21個方法的方法名codePointBefore(int,)第21個方法的返回值型別int
第22個方法的方法名codePointCount(int,int,)第22個方法的返回值型別int
第23個方法的方法名compareToIgnoreCase(java.lang.String,)第23個方法的返回值型別int
第24個方法的方法名concat(java.lang.String,)第24個方法的返回值型別java.lang.String
第25個方法的方法名contains(java.lang.CharSequence,)第25個方法的返回值型別boolean
第26個方法的方法名contentEquals(java.lang.CharSequence,)第26個方法的返回值型別boolean
第27個方法的方法名contentEquals(java.lang.StringBuffer,)第27個方法的返回值型別boolean
第28個方法的方法名copyValueOf([C,)第28個方法的返回值型別java.lang.String
第29個方法的方法名copyValueOf([C,int,int,)第29個方法的返回值型別java.lang.String
第30個方法的方法名endsWith(java.lang.String,)第30個方法的返回值型別boolean
第31個方法的方法名equalsIgnoreCase(java.lang.String,)第31個方法的返回值型別boolean
第32個方法的方法名format(java.util.Locale,java.lang.String,[Ljava.lang.Object;,)第32個方法的返回值型別java.lang.String
第33個方法的方法名format(java.lang.String,[Ljava.lang.Object;,)第33個方法的返回值型別java.lang.String
第34個方法的方法名getBytes(int,int,[B,int,)第34個方法的返回值型別void
第35個方法的方法名getBytes(java.nio.charset.Charset,)第35個方法的返回值型別[B
第36個方法的方法名getBytes(java.lang.String,)第36個方法的返回值型別[B
第37個方法的方法名getBytes()第37個方法的返回值型別[B
第38個方法的方法名getChars(int,int,[C,int,)第38個方法的返回值型別void
第39個方法的方法名intern()第39個方法的返回值型別java.lang.String
第40個方法的方法名isEmpty()第40個方法的返回值型別boolean
第41個方法的方法名join(java.lang.CharSequence,[Ljava.lang.CharSequence;,)第41個方法的返回值型別java.lang.String
第42個方法的方法名join(java.lang.CharSequence,java.lang.Iterable,)第42個方法的返回值型別java.lang.String
第43個方法的方法名lastIndexOf(int,)第43個方法的返回值型別int
第44個方法的方法名lastIndexOf(java.lang.String,)第44個方法的返回值型別int
第45個方法的方法名lastIndexOf(java.lang.String,int,)第45個方法的返回值型別int
第46個方法的方法名lastIndexOf(int,int,)第46個方法的返回值型別int
第47個方法的方法名length()第47個方法的返回值型別int
第48個方法的方法名matches(java.lang.String,)第48個方法的返回值型別boolean
第49個方法的方法名offsetByCodePoints(int,int,)第49個方法的返回值型別int
第50個方法的方法名regionMatches(int,java.lang.String,int,int,)第50個方法的返回值型別boolean
第51個方法的方法名regionMatches(boolean,int,java.lang.String,int,int,)第51個方法的返回值型別boolean
第52個方法的方法名replace(char,char,)第52個方法的返回值型別java.lang.String
第53個方法的方法名replace(java.lang.CharSequence,java.lang.CharSequence,)第53個方法的返回值型別java.lang.String
第54個方法的方法名replaceAll(java.lang.String,java.lang.String,)第54個方法的返回值型別java.lang.String
第55個方法的方法名replaceFirst(java.lang.String,java.lang.String,)第55個方法的返回值型別java.lang.String
第56個方法的方法名split(java.lang.String,)第56個方法的返回值型別[Ljava.lang.String;
第57個方法的方法名split(java.lang.String,int,)第57個方法的返回值型別[Ljava.lang.String;
第58個方法的方法名startsWith(java.lang.String,int,)第58個方法的返回值型別boolean
第59個方法的方法名startsWith(java.lang.String,)第59個方法的返回值型別boolean
第60個方法的方法名subSequence(int,int,)第60個方法的返回值型別java.lang.CharSequence
第61個方法的方法名substring(int,)第61個方法的返回值型別java.lang.String
第62個方法的方法名substring(int,int,)第62個方法的返回值型別java.lang.String
第63個方法的方法名toCharArray()第63個方法的返回值型別[C
第64個方法的方法名toLowerCase(java.util.Locale,)第64個方法的返回值型別java.lang.String
第65個方法的方法名toLowerCase()第65個方法的返回值型別java.lang.String
第66個方法的方法名toUpperCase()第66個方法的返回值型別java.lang.String
第67個方法的方法名toUpperCase(java.util.Locale,)第67個方法的返回值型別java.lang.String
第68個方法的方法名trim()第68個方法的返回值型別java.lang.String
第69個方法的方法名wait()第69個方法的返回值型別void
第70個方法的方法名wait(long,int,)第70個方法的返回值型別void
第71個方法的方法名wait(long,)第71個方法的返回值型別void
第72個方法的方法名getClass()第72個方法的返回值型別java.lang.Class
第73個方法的方法名notify()第73個方法的返回值型別void
第74個方法的方法名notifyAll()第74個方法的返回值型別void
第75個方法的方法名chars()第75個方法的返回值型別java.util.stream.IntStream
第76個方法的方法名codePoints()第76個方法的返回值型別java.util.stream.IntStream
輸出:
run:
int
java.lang.String
String
void