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

目录
相关文章
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
51 13
CRaC技术助力ACS上的Java应用启动加速
容器计算服务借助ACS的柔性算力特性并搭配CRaC技术极致地提升Java类应用的启动速度。
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java中的this关键字详解:深入理解与应用
本文深入解析了Java中`this`关键字的多种用法
182 9
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
50 5
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
本文介绍了如何将Java与AIGC(人工智能生成内容)技术结合,实现智能文本生成。
154 5
【潜意识Java】深入理解MyBatis,从基础到高级的深度细节应用
本文详细介绍了MyBatis,一个轻量级的Java持久化框架。内容涵盖MyBatis的基本概念、配置与环境搭建、基础操作(如创建实体类、Mapper接口及映射文件)以及CRUD操作的实现。此外,还深入探讨了高级特性,包括动态SQL和缓存机制。通过代码示例,帮助开发者更好地掌握MyBatis的使用技巧,提升数据库操作效率。总结部分强调了MyBatis的优势及其在实际开发中的应用价值。
38 1
反射-----浅解析(Java)
在java中,我们可以通过反射机制,知道任何一个类的成员变量(成员属性)和成员方法,也可以堆任何一个对象,调用这个对象的任何属性和方法,更进一步我们还可以修改部分信息和。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等