Java反射机制:从对象获取类的所有方法信息

来源:互联网 发布:苹果mac xshell 编辑:程序博客网 时间:2024/05/21 14:48

1.获取类信息的工具类

/** * 获取类信息的工具类 * @author Ronacaodo *  */public class ClassUtil {    /**     * 根据对象获取类的名称     * @param obj 对象     * @return 名称     */    public static String getClassName(Object obj)    {        //首先获取类的类类型        //传递的是Object的哪个子类的对象,c就是该类的类类型        Class c=obj.getClass();        return c.getName();    }    public static Method[] getMethods(Object obj)    {        Class c=obj.getClass();        //getMethods()获取所有的public函数,包括从父类继承而来的        //getDeclearedMethods()获取所有该类自己申明的方法        return c.getMethods();    }}

2.具体实现:

public static void main(String[] args) {        String a = "aaa";        System.out.println(ClassUtil.getClassName(a));        Method methods[] =ClassUtil.getMethods(a);//获取a对象的类的方法        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[] paramTypes=methods[i].getParameterTypes();            //遍历所有的参数的类类型            for(int j=0;j<paramTypes.length;j++)            {                System.out.print(paramTypes[j].getName()+",");            }            System.out.println(")");        }    }

运行结果:

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()

0 0
原创粉丝点击