zoukankan      html  css  js  c++  java
  • 关于EKT相关知识(类的反射)

    |   |   reflect

    提供类和接口,以获得关于类和对象的反射信息

    1.实现了反射的类:

    Class类:代表一个类。

    Field 类:代表类的成员变量(成员变量也称为类的属性)。

    Method类:代表类的方法。

    Modifier类:代表修饰符。

    Constructor 类:代表类的构造方法。

    Array类:提供了动态创建数组,以及访问数组的元素的静态方法

    2.java反射机制:

      1)在Java运行时 环境中,对于任意一个类,能否知道这个类有哪些属性和方法?    

         2) 对于任意一个对象,能否调用他的方法?这些答案是肯定的,这种动态获取类的信息,以及动态调用类的方法的功能来源于JAVA的反射。从而使java具有动态语言的特性。 

    3.代码示例

    1)注意事项:

    a.运行jdk环境版本:jdk1.8.0_131

    b. 编译工具:Idea 2018 版本

    2)Contructor类实现反射:

    代码示例:

    package com.liujie.demo.Demo2;
    
    
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Modifier;
    
    public class Demo2 {
        public static void main(String[] args)throws SecurityException,
                NoSuchMethodException, IllegalArgumentException, InstantiationException,
                IllegalAccessException, InvocationTargetException {
            //反射String类的所有构造方法
            Class clz= Student.class;
            System.out.println("所有构造方法");
            //Constructor[] cons=clz.getConstructors();
            Constructor[] cons=clz.getDeclaredConstructors();
            for (Constructor con : cons) {
                System.out.println("Constructor构造方法为:"+con+"访问修饰权限:"+ Modifier.toString(con.getModifiers()));
            }
            //找无参的构造方法    Student s = new Student();
            Constructor con = clz.getDeclaredConstructor();
            Object obj = con.newInstance();
            System.out.println("++++++++++++++++++");
            System.out.println(obj);
    
            //找带string,int类型参数的构造方法 Student s = new Student("zhangsan",12)
            con = clz.getDeclaredConstructor(String.class, int.class);
            obj = con.newInstance("zhangsan", 12);
            System.out.println(obj);
    
            con = clz.getDeclaredConstructor(String.class);
            obj = con.newInstance("zhangsi");
            System.out.println(obj);
    
        }
    }

    控制台运行结果:

    心得:

      在程序员这行,既然你进来了,你就得准备好满满的热情,等待竞争强烈的互联网企业猛烈的风雨摧残,

    平均程序员一万多的工资毕竟也不是擒手就来的

  • 相关阅读:
    【产品干货】经典营销模型的产品化介绍
    阿里云力夺FewCLUE榜首!知识融入预训练+小样本学习的实战解析
    云上资源编排的思与悟
    储留香:一个智能运维系统就是一个中枢神经系统,我说的!
    企业网管软件之SOLARWINDS实战-制作拓扑图
    企业网管软件之SOLARWINDS实战-基于浏览器的网络流量监控
    企业网管软件实战之看视频学装Cisco Works 2000
    轻松学习Linux之Shell预定义变量
    oracle的监听日志太大,正确的删除步骤
    MVC 使用HandleErrorAttribute统一处理异常
  • 原文地址:https://www.cnblogs.com/xiaojieDeam/p/13542915.html
Copyright © 2011-2022 走看看