ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Java SE】反射

2022-05-22 19:33:24  阅读:188  来源: 互联网

标签:反射 Java String System Constructor println public SE out


返回自己和超类的 public 字段、方法、构造器
getFields()
getMethods()
getConstructors() 超类没返回

返回自己的所有 字段、方法、构造器
getDeclaredFields()
getDeclaredMethods()
getDeclaredConstructors()

package cn.ycx.common.reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * 类
 *
 * @author: ycx
 * @date: 2022-5-21
 * @since 0.0.1
 */
public class YReflect {
    public static void main(String[] args) throws Exception {
        Class c = Class.forName("cn.ycx.common.reflect.Student");
        System.out.println("自己和超类的");
        // 自己和超类的 public 字段
        Field[] fields = c.getFields();
        for (Field field : fields) {
            System.out.println(field.getName());
        }
        // 自己和超类的 public 方法
        Method[] methods = c.getMethods();
        for (Method method : methods) {
            System.out.println(method.getName());
        }
        // 自己和超类的 Constructor 方法
        Constructor[] constructors = c.getConstructors();
        for (Constructor constructor : constructors) {
            System.out.println(constructor.getName());
        }
        System.out.println("自己的");
        // 自己的 public 字段
        Field[] selfFields = c.getDeclaredFields();
        for (Field field : selfFields) {
            System.out.println(field.getName());
        }
        // 自己的 public 方法
        Method[] selfMethods = c.getDeclaredMethods();
        for (Method method : selfMethods) {
            System.out.println(method.getName());
        }
        // 自己的 Constructor 方法
        Constructor[] selfConstructors = c.getDeclaredConstructors();
        for (Constructor constructor : selfConstructors) {
            System.out.println(constructor.getName());
        }
    }
}
class Person {
    public Person() {}
    public Person(String p) {}
    private String personPrivateField = "personPrivateField";
    protected String personProtectedField = "personProtectedField";
    public String personPublicField = "personPublicField";
    private String personPrivateMethod() {
        System.out.println("personPrivateMethod");
        return "personPrivateMethod";
    }
    protected String personProtectedMethod() {
        System.out.println("personProtectedMethod");
        return "personProtectedMethod";
    }
    public String personPublicMethod() {
        System.out.println("personPublicMethod");
        return "personPublicMethod";
    }
}
class Student extends Person {
    public Student() {}
    public Student(String s) {super(s);}
    private String studentPrivateField = "studentPrivateField";
    protected String studentProtectedField = "studentProtectedField";
    public String studentPublicField = "studentPublicField";
    private String studentPrivateMethod() {
        System.out.println("studentPrivateMethod");
        return "studentPrivateMethod";
    }
    protected String studentProtectedMethod() {
        System.out.println("studentProtectedMethod");
        return "studentProtectedMethod";
    }
    public String studentPublicMethod() {
        System.out.println("studentPublicMethod");
        return "studentPublicMethod";
    }
}

 

标签:反射,Java,String,System,Constructor,println,public,SE,out
来源: https://www.cnblogs.com/yangchongxing/p/16298675.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有