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);

目录
相关文章
|
20天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
4天前
|
监控 Java 开发者
掌握 Java 反射和动态代理
【4月更文挑战第19天】Java反射和动态代理提供强大功能和灵活性。反射允许运行时检查和操作类,获取类信息、动态调用方法,但可能带来性能损失和降低代码可读性。动态代理则用于创建代理对象,实现透明性和横切关注点分离,常用于日志、权限检查等。两者结合能实现更复杂功能。掌握这些技术能提升代码的灵活性和可扩展性,但也需注意性能和可读性。通过学习和实践,能更好地构建高效软件系统。
|
5天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
5天前
|
设计模式 算法 Java
Java中的设计模式及其应用
【4月更文挑战第18天】本文介绍了Java设计模式的重要性及分类,包括创建型、结构型和行为型模式。创建型模式如单例、工厂方法用于对象创建;结构型模式如适配器、组合关注对象组合;行为型模式如策略、观察者关注对象交互。文中还举例说明了单例模式在配置管理器中的应用,工厂方法在图形编辑器中的使用,以及策略模式在电商折扣计算中的实践。设计模式能提升代码可读性、可维护性和可扩展性,是Java开发者的必备知识。
|
5天前
|
安全 Java API
函数式编程在Java中的应用
【4月更文挑战第18天】本文介绍了函数式编程的核心概念,包括不可变性、纯函数、高阶函数和函数组合,并展示了Java 8如何通过Lambda表达式、Stream API、Optional类和函数式接口支持函数式编程。通过实际应用案例,阐述了函数式编程在集合处理、并发编程和错误处理中的应用。结论指出,函数式编程能提升Java代码的质量和可维护性,随着Java语言的演进,函数式特性将更加丰富。
|
6天前
|
Java API 数据库
深入解析:使用JPA进行Java对象关系映射的实践与应用
【4月更文挑战第17天】Java Persistence API (JPA) 是Java EE中的ORM规范,简化数据库操作,让开发者以面向对象方式处理数据,提高效率和代码可读性。它定义了Java对象与数据库表的映射,通过@Entity等注解标记实体类,如User类映射到users表。JPA提供持久化上下文和EntityManager,管理对象生命周期,支持Criteria API和JPQL进行数据库查询。同时,JPA包含事务管理功能,保证数据一致性。使用JPA能降低开发复杂性,但需根据项目需求灵活应用,结合框架如Spring Data JPA,进一步提升开发便捷性。
|
11天前
|
Java
探秘jstack:解决Java应用线程问题的利器
探秘jstack:解决Java应用线程问题的利器
17 1
探秘jstack:解决Java应用线程问题的利器
|
11天前
|
Java
代码的魔法师:Java反射工厂模式详解
代码的魔法师:Java反射工厂模式详解
23 0
|
15天前
|
安全 Java
java反射篇
java反射篇
|
15天前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
24 0

热门文章

最新文章