Java获取方法信息(某一函数,方法也是一个对象)
目錄
?
?
理論
演示
?
理論
java中萬(wàn)事萬(wàn)物都是對(duì)象,某一個(gè)類(lèi)的方法,也是對(duì)象,所以對(duì)象中的一個(gè)方法也是一個(gè)對(duì)象,所以后期才會(huì)有注解,方便開(kāi)發(fā)者的編程。
?
演示
整體項(xiàng)目結(jié)構(gòu)如下:
?
演示獲取基本數(shù)據(jù)!
源碼如下:
GenericData.java
package my;public class GenericData {@SuppressWarnings("rawtypes")public static void main(String[] args) {Class c1 = int.class; Class c2 = String.class;Class c3 = double.class;Class c4 = Double.class;Class c5 = void.class;Class c6 = double.class.getClass();Class c7 = double.class.getClass().getClass();System.out.println(c1.getName());System.out.println(c2.getName());System.out.println(c3.getName());System.out.println(c4.getName());System.out.println(c5.getName());System.out.println();System.out.println(c6.getName());System.out.println(c7.getName());} }運(yùn)行截圖如下:
其中:
?? ??? ?Class c1 = int.class;? ? ? ? ? 為int的類(lèi)類(lèi)型
?? ??? ?Class c2 = String.class;? ? ? ? ? String類(lèi)型的類(lèi)型
?? ??? ?Class c3 = double.class;? ? ? ? ? double.class為double數(shù)據(jù)類(lèi)型的類(lèi)型
?? ??? ?Class c4 = Double.class;? ? ? ? ? Double.class為Double類(lèi)類(lèi)型
?? ??? ?Class c5 = void.class;? ? ? ? ?
?? ??? ?
?? ??? ?Class c6 = double.class.getClass();? ? ? ? ??double數(shù)據(jù)類(lèi)型的類(lèi)型的類(lèi)型
?? ??? ?Class c7 = double.class.getClass().getClass();? ? ? ? ? 最后還是回到了Class類(lèi)型
?
演示二:獲取類(lèi)方法名
ClassUtil.java
package my;import java.lang.reflect.Method;public class ClassUtil {/*** 打印類(lèi)的信息,包括成員函數(shù)、成員變量* */public static void printClassMessage(Object obj) {Class c = obj.getClass();//獲取類(lèi)名System.out.println("類(lèi)的名稱(chēng)是:" + c.getName());//獲取方法Method[] ms = c.getMethods();for(int i = 0; i < ms.length; i++) {//獲取方法返回值類(lèi)型Class returnType = ms[i].getReturnType();System.out.print(returnType.getName() + " ");//得到方法的名稱(chēng)System.out.print(ms[i].getName() + "(");//獲取參數(shù)類(lèi)型Class[] paramTypes = ms[i].getParameterTypes();for(Class class1 : paramTypes) {System.out.print(class1.getName() + ",");}System.out.println(")");}} }MethodData.java
package my;public class MethodData {public static void main(String[] args) {String s = "Hello";ClassUtil.printClassMessage(s);} }運(yùn)行截圖如下:
這里只要注意這幾點(diǎn):
getMethods()是獲取所有public的函數(shù),包括父類(lèi)的;
getDeclaredMethods()獲取自己聲明的
總結(jié)
以上是生活随笔為你收集整理的Java获取方法信息(某一函数,方法也是一个对象)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java工作笔记-生成及解析Json字符
- 下一篇: Java笔记-使用RabbitMQ的Ja