美文网首页
Java反射

Java反射

作者: ssttIsme | 来源:发表于2019-03-25 16:55 被阅读0次

    反射:允许程序在运行过程中动态地取得任何一个对象的内部信息。

    动态:在运行期决定调用什么方法,并执行该方法。
    静态:在编译期指定调用什么方法。

    反射能够在运行期间通过对象看到类的内部。

    类的信息有:对象类型,类的属性,类的方法

    package test;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    public class ReflectDemo1 {
        public static void getClassInfo(Object obj){
            //在运行期判断出obj对象的真实类型
            System.out.println("==对象的类型==");
            Class<?> cls = obj.getClass();
            System.out.println(cls);
            System.out.println("==类的属性==");
            //获取类的属性
            Field[] fields = cls.getDeclaredFields();
            for (Field field : fields) {
                System.out.println(field);
            }
            System.out.println("==类的方法==");
            //获取类的方法
            Method[] methods = cls.getDeclaredMethods();
            for (Method method : methods) {
                System.out.println(method);
            }
        }
        
        public static void main(String[] args) {
            getClassInfo("hello");
            System.out.println();
            getClassInfo(2);
        }
    
    }
    

    运行结果

    ==对象的类型==
    class java.lang.String
    ==类的属性==
    private final char[] java.lang.String.value
    private int java.lang.String.hash
    private static final long java.lang.String.serialVersionUID
    private static final java.io.ObjectStreamField[] java.lang.String.serialPersistentFields
    public static final java.util.Comparator java.lang.String.CASE_INSENSITIVE_ORDER
    private static final int java.lang.String.HASHING_SEED
    private transient int java.lang.String.hash32
    ==类的方法==
    public boolean java.lang.String.equals(java.lang.Object)
    public java.lang.String java.lang.String.toString()
    public int java.lang.String.hashCode()
    public int java.lang.String.compareTo(java.lang.Object)
    public int java.lang.String.compareTo(java.lang.String)
    public int java.lang.String.indexOf(java.lang.String,int)
    public int java.lang.String.indexOf(int)
    public int java.lang.String.indexOf(int,int)
    static int java.lang.String.indexOf(char[],int,int,char[],int,int,int)
    public int java.lang.String.indexOf(java.lang.String)
    public static java.lang.String java.lang.String.valueOf(float)
    public static java.lang.String java.lang.String.valueOf(double)
    public static java.lang.String java.lang.String.valueOf(boolean)
    public static java.lang.String java.lang.String.valueOf(char[],int,int)
    public static java.lang.String java.lang.String.valueOf(char[])
    public static java.lang.String java.lang.String.valueOf(java.lang.Object)
    public static java.lang.String java.lang.String.valueOf(char)
    public static java.lang.String java.lang.String.valueOf(int)
    public static java.lang.String java.lang.String.valueOf(long)
    public char java.lang.String.charAt(int)
    private static void java.lang.String.checkBounds(byte[],int,int)
    public int java.lang.String.codePointAt(int)
    public int java.lang.String.codePointBefore(int)
    public int java.lang.String.codePointCount(int,int)
    public int java.lang.String.compareToIgnoreCase(java.lang.String)
    public java.lang.String java.lang.String.concat(java.lang.String)
    public boolean java.lang.String.contains(java.lang.CharSequence)
    public boolean java.lang.String.contentEquals(java.lang.StringBuffer)
    public boolean java.lang.String.contentEquals(java.lang.CharSequence)
    public static java.lang.String java.lang.String.copyValueOf(char[],int,int)
    public static java.lang.String java.lang.String.copyValueOf(char[])
    public boolean java.lang.String.endsWith(java.lang.String)
    public boolean java.lang.String.equalsIgnoreCase(java.lang.String)
    public static java.lang.String java.lang.String.format(java.util.Locale,java.lang.String,java.lang.Object[])
    public static java.lang.String java.lang.String.format(java.lang.String,java.lang.Object[])
    public byte[] java.lang.String.getBytes()
    public byte[] java.lang.String.getBytes(java.lang.String) throws java.io.UnsupportedEncodingException
    public void java.lang.String.getBytes(int,int,byte[],int)
    public byte[] java.lang.String.getBytes(java.nio.charset.Charset)
    void java.lang.String.getChars(char[],int)
    public void java.lang.String.getChars(int,int,char[],int)
    int java.lang.String.hash32()
    private int java.lang.String.indexOfSupplementary(int,int)
    public native java.lang.String java.lang.String.intern()
    public boolean java.lang.String.isEmpty()
    public int java.lang.String.lastIndexOf(int)
    public int java.lang.String.lastIndexOf(int,int)
    public int java.lang.String.lastIndexOf(java.lang.String,int)
    public int java.lang.String.lastIndexOf(java.lang.String)
    static int java.lang.String.lastIndexOf(char[],int,int,char[],int,int,int)
    private int java.lang.String.lastIndexOfSupplementary(int,int)
    public int java.lang.String.length()
    public boolean java.lang.String.matches(java.lang.String)
    public int java.lang.String.offsetByCodePoints(int,int)
    public boolean java.lang.String.regionMatches(int,java.lang.String,int,int)
    public boolean java.lang.String.regionMatches(boolean,int,java.lang.String,int,int)
    public java.lang.String java.lang.String.replace(char,char)
    public java.lang.String java.lang.String.replace(java.lang.CharSequence,java.lang.CharSequence)
    public java.lang.String java.lang.String.replaceAll(java.lang.String,java.lang.String)
    public java.lang.String java.lang.String.replaceFirst(java.lang.String,java.lang.String)
    public java.lang.String[] java.lang.String.split(java.lang.String)
    public java.lang.String[] java.lang.String.split(java.lang.String,int)
    public boolean java.lang.String.startsWith(java.lang.String)
    public boolean java.lang.String.startsWith(java.lang.String,int)
    public java.lang.CharSequence java.lang.String.subSequence(int,int)
    public java.lang.String java.lang.String.substring(int,int)
    public java.lang.String java.lang.String.substring(int)
    public char[] java.lang.String.toCharArray()
    public java.lang.String java.lang.String.toLowerCase()
    public java.lang.String java.lang.String.toLowerCase(java.util.Locale)
    public java.lang.String java.lang.String.toUpperCase(java.util.Locale)
    public java.lang.String java.lang.String.toUpperCase()
    public java.lang.String java.lang.String.trim()
    
    ==对象的类型==
    class java.lang.Integer
    ==类的属性==
    public static final int java.lang.Integer.MIN_VALUE
    public static final int java.lang.Integer.MAX_VALUE
    public static final java.lang.Class java.lang.Integer.TYPE
    static final char[] java.lang.Integer.digits
    static final char[] java.lang.Integer.DigitTens
    static final char[] java.lang.Integer.DigitOnes
    static final int[] java.lang.Integer.sizeTable
    private final int java.lang.Integer.value
    public static final int java.lang.Integer.SIZE
    private static final long java.lang.Integer.serialVersionUID
    static final boolean java.lang.Integer.$assertionsDisabled
    ==类的方法==
    public static int java.lang.Integer.numberOfLeadingZeros(int)
    public static int java.lang.Integer.numberOfTrailingZeros(int)
    public static int java.lang.Integer.bitCount(int)
    public boolean java.lang.Integer.equals(java.lang.Object)
    public java.lang.String java.lang.Integer.toString()
    public static java.lang.String java.lang.Integer.toString(int,int)
    public static java.lang.String java.lang.Integer.toString(int)
    public int java.lang.Integer.hashCode()
    public static int java.lang.Integer.reverseBytes(int)
    public int java.lang.Integer.compareTo(java.lang.Object)
    public int java.lang.Integer.compareTo(java.lang.Integer)
    public byte java.lang.Integer.byteValue()
    public short java.lang.Integer.shortValue()
    public int java.lang.Integer.intValue()
    public long java.lang.Integer.longValue()
    public float java.lang.Integer.floatValue()
    public double java.lang.Integer.doubleValue()
    public static java.lang.Integer java.lang.Integer.valueOf(int)
    public static java.lang.Integer java.lang.Integer.valueOf(java.lang.String) throws java.lang.NumberFormatException
    public static java.lang.Integer java.lang.Integer.valueOf(java.lang.String,int) throws java.lang.NumberFormatException
    public static java.lang.String java.lang.Integer.toHexString(int)
    public static int java.lang.Integer.compare(int,int)
    public static java.lang.Integer java.lang.Integer.decode(java.lang.String) throws java.lang.NumberFormatException
    static void java.lang.Integer.getChars(int,int,char[])
    public static int java.lang.Integer.reverse(int)
    static int java.lang.Integer.stringSize(int)
    public static int java.lang.Integer.parseInt(java.lang.String) throws java.lang.NumberFormatException
    public static int java.lang.Integer.parseInt(java.lang.String,int) throws java.lang.NumberFormatException
    public static java.lang.Integer java.lang.Integer.getInteger(java.lang.String)
    public static java.lang.Integer java.lang.Integer.getInteger(java.lang.String,int)
    public static java.lang.Integer java.lang.Integer.getInteger(java.lang.String,java.lang.Integer)
    public static int java.lang.Integer.highestOneBit(int)
    public static int java.lang.Integer.lowestOneBit(int)
    public static int java.lang.Integer.rotateLeft(int,int)
    public static int java.lang.Integer.rotateRight(int,int)
    public static int java.lang.Integer.signum(int)
    public static java.lang.String java.lang.Integer.toBinaryString(int)
    public static java.lang.String java.lang.Integer.toOctalString(int)
    private static java.lang.String java.lang.Integer.toUnsignedString(int,int)
    
    

    相关文章

      网友评论

          本文标题:Java反射

          本文链接:https://www.haomeiwen.com/subject/sjdbvqtx.html