认真阅读完这篇文章熟练掌握JAVA关于反射——案例源码详解

举报
桃花键神 发表于 2022/04/17 12:42:10 2022/04/17
【摘要】 认真阅读完这篇文章熟练掌握JAVA关于反射——案例源码详解

**Java的反射(reflection)**机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键技术。
通过反射创建类对象
image-20210421135202954
过反射获取类属性、方法、构造器
image-20210421135228103
反射获取注解属性

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface UserName {
    String name() default "李四";
}
public class User {
    @UserName(name = "王五")
    //@UserName
    private String name;

    public int pf(int i) {
        return i * i;
    }
}
public class Ref7 {
    public static void main(String[] args) {
        Class u = User.class;
        Field n = null;
        try {
            n = u.getDeclaredField("name");
            System.out.println(n.getName());
            var un = n.getAnnotation(UserName.class);
            System.out.println(un.name());
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }

    }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。