1. 程式人生 > >Java--Reflect(反射)專題3——獲取類的方法的所有資訊

Java--Reflect(反射)專題3——獲取類的方法的所有資訊

程式碼演示說明:常見資料型別的類型別。

    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