`
zhaixiaofengJava
  • 浏览: 2100 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java反射入门

阅读更多
简单实例:


package com.zhaixiaofeng.reflect

public class Car(){
private String brand;
private String color;
private String maxSpeed;

public Car(){};

public Car(String brand, String color, String maxSpeed){
this.brandk = brand;
this.color = color;
this.maxSeepd = maxSpeed;
}

public void introduce(){
System.out.pring("brand:" + brand + ";color:" + color + ";maxSpeed" + maxSpeed);
}

}

public static Car initByDefaultConstructor() throws ThrowableException{
//(1)Get object constrator by classloader
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class cls = loader.loadClass(com.zhaixiaofeng.reflect.Car);

//(2)Get default construtor and instance object car
Constructor cons = cls.getDeclaredConstructor(Class[],null);
Car car = (Car)cons.newInstance();

//(3)Set object properties by reflect
Method setBrand = class.getMethod("setBrand",String.class);
setBrand.invoke(car,"falali");
return car;
}
public ReflectDemo{
  public stataic void main(String [] args){

//Old mothed
Car oldCar = new Car("benchi","red","1000");
oldCar.introduce();

//New mothed by reflect
Car newCar = initDefaultConstructor();
newCar.introduce();

  }
}
解释:
在ReflectDemo类中,使用到了Java中常用的反射类:ClassLoader,Class,Constructor,Method.
通过这些反射类方法、可以直接调用Class的各个功能。
(1)获取当前线程的ClassLoader,通过指定的全限定类:com.zhaixiaofeng.reflect.Car,装载Car类对应的反射实例.
(2)通过Car的反射类对象获取Car的构造函数对象cons,通过构造函数的newInstance()方法实例化Car对象,其效果等同于newCar();
(3)通过Car的反射类对象的getMethod(String methodName,Class paramClass)获取属性的Setter方法对象,第一个参数是目标Class的方法名;第二个参数是方法入参的对象类型。获取方法反射对象后,即可通过invoke(Object obj,Object param)方法调用目标类的方法,该方法的第一个参数是操作的目标类对象实例;第二个参数是目标方法的入参。
0
3
分享到:
评论

相关推荐

    java反射入门

    Java反射是Java语言的一个重要特性,它允许程序在运行时检查和操作类、接口、对象等的内部结构。反射机制使得代码能够动态地获取类的信息并调用其方法,增加了程序的灵活性和可扩展性。以下将详细介绍Java反射中的几...

    java 反射入门-属性方法调用实例

    这篇博文将带你入门Java反射,并通过属性和方法的调用来实践这一概念。 首先,理解反射的基础概念。在Java中,`Class`类代表了运行时的类信息。通过`Class`对象,我们可以获取到类的名称、构造器、方法和字段。例如...

    JDBC_Java反射技术入门

    在这个“JDBC_Java反射技术入门”资源中,初学者可以了解到如何使用Java进行数据库操作的基础知识,包括连接数据库、执行SQL语句、处理查询结果等。 1. **JDBC基础**: - **加载驱动**:在使用JDBC之前,我们需要...

    JAVA反射机制的入门代码

    总的来说,"JAVA反射机制的入门代码"是初学者理解Java反射机制的好教材,通过它,你可以学习如何动态地操作Java类,提高代码的灵活性,并掌握处理`properties`文件的基础方法。在深入学习和实践中,你将进一步理解...

    java从入门到精通PPT

    最后,PPT可能还介绍了Java的高级话题,如反射、注解、泛型和设计模式。这些内容有助于提升你的编程技巧,使你能更好地应对复杂项目的需求。 总的来说,“java从入门到精通PPT”提供了一个全面的学习路线,从基础到...

    java反射机制

    - [Baeldung:Java反射入门](https://www.baeldung.com/java-reflection) - [Stack Overflow上的相关讨论](https://stackoverflow.com/questions/tagged/java-reflection) 总之,Java反射机制是理解Java动态特性的...

    JAVA基础入门到精通pdf

    本资源“JAVA基础入门到精通pdf”提供了一条系统学习Java的路径,适合初学者作为入门教程。以下是对Java基础知识的详细解读: 1. **Java概述**:Java是由Sun Microsystems(现为Oracle公司)于1995年推出的一种面向...

    Java基础入门.rar

    "Java基础入门"这个压缩包提供了学习Java编程的基础资源,包括经典的入门书籍源码和JDK11的中文版API文档。 首先,让我们来了解一下Java API。API(Application Programming Interface)是一系列预先定义的函数,...

    完整版 Java基础入门教程 Java程序语言设计 07 网络编程 反射机制(共23页).ppt

    完整版 Java基础入门教程 Java程序语言设计 07 网络编程 反射机制(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络编程 网络编程(共32页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络...

    Java基础入门四泛型反射注解.pdf

    Java基础入门系列是帮助初学者掌握Java编程的重要学习材料,本篇主要介绍了泛型、反射和注解这三大高级特性。 泛型是Java SE 5版本引入的一个新特性,它的主要目的是允许在使用类、接口和方法时能够引用到任何类型...

    《Java从入门到精通(第4版)》随书PPT

    12. **反射与注解**:讲解Java反射机制,如何动态访问和修改类、接口、方法,以及注解的使用和自定义注解的创建。 13. **Java高级特性**:如模块化系统(Project Jigsaw)、Optional类、并发工具类(如...

    java反射 详解 入门到掌握

    Java反射是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、字段和方法的信息。这使得开发者能够在不事先知道具体类名或方法名的情况下,动态地创建对象并调用方法。Java反射机制是Java动态性...

    完整版 Java基础入门教程 Java程序语言设计 全套PPT课件资源 共17个章节 含源代码.rar

    完整版 Java基础入门教程 Java程序语言设计 07 网络编程 反射机制(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络编程 网络编程(共32页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络...

    Java入门到精通pdf

    《Java入门到精通》是一本面向Java初学者的权威指南,旨在帮助读者快速掌握Java编程语言的基础知识并逐步深入到高级技术。这本书涵盖了从安装Java开发环境,理解基本语法,到构建复杂应用程序的全过程,是学习Java...

    完整版 Java基础入门教程 Java程序语言设计 04 IO流 输入输出流(共31页).ppt

    完整版 Java基础入门教程 Java程序语言设计 07 网络编程 反射机制(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络编程 网络编程(共32页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络...

    java 从入门到精通 源代码

    如异常处理、集合框架(ArrayList、LinkedList、HashMap等)、IO流(用于文件读写和网络通信)、多线程编程(线程同步、线程池)、反射机制、设计模式(如单例模式、工厂模式、观察者模式等)以及Java的高级API,如...

    完整版 Java基础入门教程 Java程序语言设计 03 java对象 集合框架(共18页).ppt

    完整版 Java基础入门教程 Java程序语言设计 07 网络编程 反射机制(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络编程 网络编程(共32页).ppt 完整版 Java基础入门教程 Java程序语言设计 07 网络...

    Java语言入门书籍

    第九章通常会涉及一些高级主题,如反射、注解、JNI(Java Native Interface)等,这些可以帮助开发者更好地理解和利用Java的底层机制。 每一章都会包含大量的实例代码和练习,以帮助读者巩固理论知识,提高实际编程...

Global site tag (gtag.js) - Google Analytics