• java反射机制


    package seday18c;
    
    import java.lang.reflect.Method;
    
    /**
     * java反射机制
     * java反射机制是一种动态机制,它允许我们加载一个类实例化一个类,调用方法或操作属性从编码期间确定转为在运行期间确定。
     * 这样做可以大大提高代码的灵活度,但是反射有更大的资源开销。所以不能过度依赖反射。
     */
    public class ReflectDemo1 {
    
    	public static void main(String[] args) {
    		/*
    		 * Class类
    		 * Class类的每一个实例用于表示JVM已经加载的一个类。并且在JVM内部每个被加载的类都有且只有一个Class的实例与之对应。
    		 * 通过类对象我们可以:
    		 * 获取其表示的类的名字,构造方法,方法,属性,并可以快速实例化。
    		 * 获取一个类的类对象有以下方式:
    		 * 1:直接通过类的静态属性class得到。比如像获取String的类对象,可以: Class cls = String.class; 
    		 * 2:通过Class的静态方法forName加载:Class cls = Class.forName("java.lang.String");
    		 * 3:通过类加载器ClassLoader     
    		 */
    		try { 
    			//方式一:直接通过类的静态属性class得到
    			Class clss = Integer.class;
    			String names=clss.getName();//获取类名
    			System.out.println(names);//打印名称
    			Method [] method1=clss.getDeclaredMethods();//获取本类定义的方法(不含超类继承的方法)
    			System.out.println(method1.length);//长度
    			//遍历
    			for(Method method2 : method1) {
    				System.out.println(method2.getName());//打印
    			}
    			System.out.println("----------------------------------");//打印分割线
    			//方式二:通过Class的静态方法forName加载Integer
    			Class cls =Class.forName("java.lang.Integer");
    			String name=cls.getName();//获取类名
    			System.out.println(name);
    			//获取所有方法(含从超类继承的方法)
    			//Method[] methods = cls.getMethods();
    			//获取本类定义的方法(不含超类继承的方法)
    			Method [] methods=cls.getDeclaredMethods();
    			//长度
    			System.out.println(methods.length);
    			//遍历
    			for(Method method : methods) {
    				System.out.println(method.getName());
    			}
    
    		} catch (ClassNotFoundException e) {
    
    			e.printStackTrace();
    		}
    	}
    }
    

      

  • 相关阅读:
    Web_0012:FTP文件编辑器关联
    JS_0033:判断苹果安卓 微信浏览器,并在苹果微信浏览器下做特别处理
    JS_0032:匿名函数 function前加 ! 或 function用括号包裹起来 含义
    JS_0031:JS 常用方法
    spark为什么用scala语言开发
    spark开发常见问题
    java实现多继承
    数仓架构
    object类中的方法
    Spring的IOC原理
  • 原文地址:https://www.cnblogs.com/xingsir/p/12659845.html
Copyright © 2020-2023  润新知