作家
登录

Java高级特性之反射学习总结

作者: 来源: 2017-05-26 11:06:24 阅读 我要评论

用在Java身上指的是我们可以于运行时加载、探知、应用编译时代完全未知的classes。换句话说,Java法度榜样可以加载一个运行时才得有名称的class,获悉其完全构造(但不包含methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。

Java高等特点之反射进修总结

惯例子我们照样先提出几个问题,一门技巧必定要能解决必定的问题,才有去进修控制它的价值

  • 一、 什么是反射?
  • 二、反射能做什么?

一、 什么是反射?

如不雅你是一个Android Developer,前辈们都邑教导你尽量罕用反射,效力太低,太慢。“射”嘛,射的太快就不好了,所以反射固然慢点,然则有时射一下照样很”爽”的。

二、反射能做什么?

1、新建类的实例

我们知道所有的类都持续子顶级父类Object,而Object中有hashCode()、equals()、clone()、toString()、getClass()等。个中getClass()返回一个Class 对象。我们这里就须要应用的Class对象,留意C是大年夜写,我们可以经由过程一下方法来获取Class对象

  1. Class.forName(“类名字符串”) (留意:类名字符串必须是全称,包名+类名)
  2. 类名.class
  3. 实例对象.getClass()

在Class类中有一个异常重要的办法

  1. public T newInstance() throws InstantiationException, IllegalAccessException { 
  2.        return newInstanceImpl(); 
  3.    } 
  4.  
  5. private native T newInstanceImpl() throws IllegalAccessException, InstantiationException;  

查看Api可以看到调用newInstace办法可以返回当前class对应的实例对象。接下来看一个小的Demo

  1. public class Reflection { 
  2.  
  3.     public static void main(String[] args) { 
  4.  
  5.         // 通俗创建类的实例 
  6.  
  7.         People p1 = new People(); 
  8.         System.out.println(p1.getName()); 
  9.         // 应用反射获取类的实例 
  10.         Class clazz = People.class; 
  11.         // 常用方法,留意括号中须要放类的全路径名 
  12.         // Class clazz = Class.forName("reflection.People"); 
  13.         // Class clazz = p1.getClass(); 
  14.         try { 
  15.             People p2 = (People) clazz.newInstance(); 
  16.             System.out.println(p2.getName()); 
  17.         } catch (Exception e) { 
  18.             e.printStackTrace(); 
  19.         } 
  20.  
  21.     } 
  22.  
  23.  
  24. class People { 
  25.  
  26.     private String name = "张三"
  27.     private 
     1/10    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      Windows Server 2016软件定义存储:Storage Spaces Direct介绍

    微软在Windows Server 2016 Technical Preview 2中惹人了Storage Spaces Direct。这个特点将本地存储扩大为高>>>详细阅读


    本文标题:Java高级特性之反射学习总结

    地址:http://www.17bianji.com/lsqh/35444.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)