为什么会研究这个? 只要原因是在与本人在看网上的一些博客看源码的时候。很多人都会把该类的实现方法罗列出来。人工处理的话太麻烦了。所以写了这么个栗子。。
代码如下:
package com.example.daconfigclient.Collection;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ClassUtil { public static void getClass1(Object obj){ //获取类信息,首先要获取类的类类型 Class c1 = obj.getClass(); //获取类的名称 System.out.println("方法名称:"+c1.getName()); /** * Method类是方法的对象 */ Method[] methods = c1.getMethods(); for (int i = 0; i < methods.length; i++) { //获取该方法返回值类型 Class returnType = methods[i].getReturnType(); System.out.print(returnType.getName()+"---->>"); //获取该方法名称 System.out.print(methods[i].getName()+"("); //获取该类的参数 Class[] parameterTypes = methods[i].getParameterTypes(); for (Class class1: parameterTypes) { System.out.print(class1.getName()+","); } System.out.println(")"); } /** * 获取变量成员 */ System.out.println("获取变量成员"); Field[] declaredFields = c1.getDeclaredFields(); for (Field aa: declaredFields) { //获取变量类型的类类型 Class type = aa.getType(); System.out.print(type.getName()+":"); //获取变量名称 System.out.print(aa.getName()+"\n"); } /** * 获取构造函数 */ System.out.println("获取构造方法"); Constructor[] declaredConstructors = c1.getDeclaredConstructors(); for (Constructor bb: declaredConstructors) { //获取构造函数方法名称 System.out.print(bb.getName()); Class[] parameterTypes = bb.getParameterTypes(); System.out.print("("); for (Class cc:parameterTypes) { System.out.print(cc.getName()+","); } System.out.println(")"); } } public static void main(String[] args) { ClassUtil classUtil = new ClassUtil(); classUtil.getClass1(new String()); System.out.println("****************type**********************************"); Integer aa = 1; classUtil.getClass1(aa); }}
运行结果如下:
方法名称:java.lang.String
boolean---->>equals(java.lang.Object,) java.lang.String---->>toString() int---->>hashCode() int---->>compareTo(java.lang.String,) int---->>compareTo(java.lang.Object,) int---->>indexOf(java.lang.String,int,) int---->>indexOf(java.lang.String,) int---->>indexOf(int,int,) int---->>indexOf(int,) java.lang.String---->>valueOf(int,) java.lang.String---->>valueOf(long,) java.lang.String---->>valueOf(float,) java.lang.String---->>valueOf(boolean,) java.lang.String---->>valueOf([C,) java.lang.String---->>valueOf([C,int,int,) java.lang.String---->>valueOf(java.lang.Object,) java.lang.String---->>valueOf(char,) java.lang.String---->>valueOf(double,) char---->>charAt(int,) int---->>codePointAt(int,) int---->>codePointBefore(int,) int---->>codePointCount(int,int,) int---->>compareToIgnoreCase(java.lang.String,) java.lang.String---->>concat(java.lang.String,) boolean---->>contains(java.lang.CharSequence,) boolean---->>contentEquals(java.lang.CharSequence,) boolean---->>contentEquals(java.lang.StringBuffer,) java.lang.String---->>copyValueOf([C,) java.lang.String---->>copyValueOf([C,int,int,) boolean---->>endsWith(java.lang.String,) boolean---->>equalsIgnoreCase(java.lang.String,) java.lang.String---->>format(java.util.Locale,java.lang.String,[Ljava.lang.Object;,) java.lang.String---->>format(java.lang.String,[Ljava.lang.Object;,) void---->>getBytes(int,int,[B,int,) [B---->>getBytes(java.nio.charset.Charset,) [B---->>getBytes(java.lang.String,) [B---->>getBytes() void---->>getChars(int,int,[C,int,) java.lang.String---->>intern() boolean---->>isEmpty() java.lang.String---->>join(java.lang.CharSequence,[Ljava.lang.CharSequence;,) java.lang.String---->>join(java.lang.CharSequence,java.lang.Iterable,) int---->>lastIndexOf(int,) int---->>lastIndexOf(java.lang.String,) int---->>lastIndexOf(java.lang.String,int,) int---->>lastIndexOf(int,int,) int---->>length() boolean---->>matches(java.lang.String,) int---->>offsetByCodePoints(int,int,) boolean---->>regionMatches(int,java.lang.String,int,int,) boolean---->>regionMatches(boolean,int,java.lang.String,int,int,) java.lang.String---->>replace(char,char,) java.lang.String---->>replace(java.lang.CharSequence,java.lang.CharSequence,) java.lang.String---->>replaceAll(java.lang.String,java.lang.String,) java.lang.String---->>replaceFirst(java.lang.String,java.lang.String,) [Ljava.lang.String;---->>split(java.lang.String,) [Ljava.lang.String;---->>split(java.lang.String,int,) boolean---->>startsWith(java.lang.String,int,) boolean---->>startsWith(java.lang.String,) java.lang.CharSequence---->>subSequence(int,int,) java.lang.String---->>substring(int,) java.lang.String---->>substring(int,int,) [C---->>toCharArray() java.lang.String---->>toLowerCase(java.util.Locale,) java.lang.String---->>toLowerCase() java.lang.String---->>toUpperCase() java.lang.String---->>toUpperCase(java.util.Locale,) java.lang.String---->>trim() void---->>wait() void---->>wait(long,int,) void---->>wait(long,) java.lang.Class---->>getClass() void---->>notify() void---->>notifyAll() java.util.stream.IntStream---->>chars() java.util.stream.IntStream---->>codePoints() 获取变量成员 [C:value int:hash long:serialVersionUID [Ljava.io.ObjectStreamField;:serialPersistentFields java.util.Comparator:CASE_INSENSITIVE_ORDER 获取构造方法 java.lang.String([B,int,int,) java.lang.String([B,java.nio.charset.Charset,) java.lang.String([B,java.lang.String,) java.lang.String([B,int,int,java.nio.charset.Charset,) java.lang.String([B,int,int,java.lang.String,) java.lang.String([C,boolean,) java.lang.String(java.lang.StringBuilder,) java.lang.String(java.lang.StringBuffer,) java.lang.String([B,) java.lang.String([I,int,int,) java.lang.String() java.lang.String([C,) java.lang.String(java.lang.String,) java.lang.String([C,int,int,) java.lang.String([B,int,) java.lang.String([B,int,int,int,) ****************type********************************** 方法名称:java.lang.Integer int---->>numberOfLeadingZeros(int,) int---->>numberOfTrailingZeros(int,) int---->>bitCount(int,) boolean---->>equals(java.lang.Object,) java.lang.String---->>toString(int,int,) java.lang.String---->>toString() java.lang.String---->>toString(int,) int---->>hashCode(int,) int---->>hashCode() int---->>min(int,int,) int---->>max(int,int,) int---->>reverseBytes(int,) int---->>compareTo(java.lang.Integer,) int---->>compareTo(java.lang.Object,) byte---->>byteValue() short---->>shortValue() int---->>intValue() long---->>longValue() float---->>floatValue() double---->>doubleValue() java.lang.Integer---->>valueOf(java.lang.String,int,) java.lang.Integer---->>valueOf(int,) java.lang.Integer---->>valueOf(java.lang.String,) java.lang.String---->>toHexString(int,) int---->>compare(int,int,) java.lang.Integer---->>decode(java.lang.String,) int---->>reverse(int,) int---->>sum(int,int,) int---->>parseInt(java.lang.String,) int---->>parseInt(java.lang.String,int,) long---->>toUnsignedLong(int,) int---->>compareUnsigned(int,int,) int---->>divideUnsigned(int,int,) java.lang.Integer---->>getInteger(java.lang.String,java.lang.Integer,) java.lang.Integer---->>getInteger(java.lang.String,int,) java.lang.Integer---->>getInteger(java.lang.String,) int---->>highestOneBit(int,) int---->>lowestOneBit(int,) int---->>parseUnsignedInt(java.lang.String,) int---->>parseUnsignedInt(java.lang.String,int,) int---->>remainderUnsigned(int,int,) int---->>rotateLeft(int,int,) int---->>rotateRight(int,int,) int---->>signum(int,) java.lang.String---->>toBinaryString(int,) java.lang.String---->>toOctalString(int,) java.lang.String---->>toUnsignedString(int,) java.lang.String---->>toUnsignedString(int,int,) void---->>wait() void---->>wait(long,int,) void---->>wait(long,) java.lang.Class---->>getClass() void---->>notify() void---->>notifyAll() 获取变量成员 int:MIN_VALUE int:MAX_VALUE java.lang.Class:TYPE [C:digits [C:DigitTens [C:DigitOnes [I:sizeTable int:value int:SIZE int:BYTES long:serialVersionUID 获取构造方法 java.lang.Integer(int,) java.lang.Integer(java.lang.String,)