Java反射-------构造方法的反射应用-阿里云开发者社区

开发者社区> usher.yue> 正文

Java反射-------构造方法的反射应用

简介:       反射其实就是把 Java中的各种成分映射成相应的Java类  。    表示Java类的Class类显然要提供一系列方法 ,这些方法用来获得Java类中 ,的一些属性 方法 包  构造方法等 这些成分分别对应着Java类   Field  Method  Constructor  Package 等类 。
+关注继续查看
 

    反射其实就是把 Java中的各种成分映射成相应的Java类  。    表示Java类的Class类显然要提供一系列方法 ,这些方法用来获得Java类中 ,的一些属性 方法 包  构造方法等
这些成分分别对应着Java类   Field  Method  Constructor  Package 等类 。然后我们就可以利用获得的这些代表Java类成分的一些类的对象来实现我们想要的功能 。 
    编译器在编译的时候 只是进行了语法检查 并没有进行里面的饿操作 ,只看变量的定义不看代码的执行。在运行的时候才进行了相关操作  
    程序的开发分为编译时 和运行时     反射会议耗费时间,会导致程序性能下降
 

     构造方法的反射应用  : 
   
    package me.Test;
import java.lang.reflect.*;//导入反射相关的类  
/*下面我们通过构造方法的反射调用创建一个String对象  
 * 程序分为编译时和运行时 编译时进行语法检查
 * 运行时进行程序的操作
 * Class类也有Class对象  这个对象就是本身 
 * 我们可以直接调用Class类newInstance产生一个Class类的实例
 * 返回的是不带参数的默认构造方法,这个构造方法可以创建一个默认的实例对象
 * 例如String str=(String)Class.forName("java.lang.String").newInstance() ;
 *
 */
public class ConstructorReflectTest
{
 
 
 public static void main(String[] args)    throws Exception  //抛出异常给JVM
 {
        Constructor con=String.class.getConstructor(StringBuffer.class) ;   //通过String的Class对象返回带StringBuffer参数的构造方法对应的类
        String str=(String)con.newInstance(new StringBuffer("abc")) ;//newInstance传递的参数要和构造器参数相对应
        System.out.println(str.charAt(0)); //输出第一个字符
       
        String ss=(String)Class.forName("java.lang.String").newInstance() ;//利用默认的构造方法进行构对象 这是Class类的方法
       System.out.println(ss.getClass().getName());  //获得的类的名字
       
       
 }

}

 

 

 

 

 

Class cls=Class.class.newInstance() ;  //Class的本身的是不可以调用 newInstance 错误的这里注意
  System.out.println(cls==Class.class);

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
WPF关闭应用程序方法
原文:WPF关闭应用程序方法  很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒是有一个Exit的事件驱动,在WPF应用程序里面关闭程序讲究很多: ...
875 0
Java中的构造方法
//Java中构造对象的使用: /*格式 * 访问修饰符 类名称 (){ * 程序语句 * } */ class People{ //创建一个构造方法:与类名相同,且没有返回值 //最常用:为类中的属性进行初始化 //构造方法可以传递参数 //构造方法可以重载 int ag...
719 0
fbh
自适应实用方法
网页设计最常用的单位是px,与之相对应的rem,能够对设置好的宽高进行自适应,所以在网页显示上面应该找准body上面设置字体等的px,以用来应付单位大小。
850 0
《Kinect应用开发实战:用最自然的方式与机器对话》一2.2 Kinect传感器的硬件组成
本节书摘来自华章出版社《Kinect应用开发实战:用最自然的方式与机器对话》一书中的第2章,第2.2节,作者 余涛,更多章节内容可以访问云栖社区“华章计算机”公众号查看
2572 0
Servlet第四篇【request对象常用方法、应用】
什么是HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
1047 0
计算机网络 自顶向下方法 第二章 应用层
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/78197072 计算机网络 自顶向下方法 第二章 应用层  分类:计算机网络-笔记(2)  版权声明:本文为博主原创文章,未经博主允许不得转载。
1228 0
iOS 应用添加启动画面以及App应用图标的方法
在ios开发中经常要为项目添加启动画面,目的主要有两个:一、更加美观,二、在启动画面呈现的同时加载初始化内部的项目数据。 注意在ios开发中,需要的是png格式的图片,仅仅良好的支持这一种格式,有钱就是任性。
564 0
+关注
usher.yue
算法相关技术专家
431
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载