XML之反射

简介: XML之反射

                                 

学习XML的反射,就必须了解类类的使用。有一句话牢记:一切的反射从类类开始

一.类类

一.类类的概念

在Java反射(reflection)中,Class类被称为“类类”,每个Java类在内存中都有一个对应的Class类实例对象,可以通过Java的反射机制获取。

二.类类的使用

三种:1.getClass()

          2.类.Class

          3.Class.forName

通过这些方法我们可以得到Java类的Class实例对象。

       代码如下:

       这是一个实体类,封装了有参,无参,私有的构造方法。

       

package com.lya.xml3;
public class Student {
  private String sid;
  private String sname;
  public Integer age;
  static{
    System.out.println("加载进jvm中!");
  }
  public Student() {
    super();
    System.out.println("调用无参构造方法创建了一个学生对象");
  }
  public Student(String sid) {
    super();
    this.sid = sid;
    System.out.println("调用带一个参数的构造方法创建了一个学生对象");
  }
  public Student(String sid, String sname) {
    super();
    this.sid = sid;
    this.sname = sname;
    System.out.println("调用带二个参数的构造方法创建了一个学生对象");
  }
  @SuppressWarnings("unused")
  private Student(Integer age) {
    System.out.println("调用Student类私有的构造方法创建一个学生对象");
    this.age = age;
  }
  public String getSid() {
    return sid;
  }
  public void setSid(String sid) {
    this.sid = sid;
  }
  public String getSname() {
    return sname;
  }
  public void setSname(String sname) {
    this.sname = sname;
  }
  public void hello() {
    System.out.println("你好!我是" + this.sname);
  }
  public void hello(String name) {
    System.out.println(name + "你好!我是" + "您爹");
  }
  @SuppressWarnings("unused")
  private Integer add(Integer a, Integer b) {
    return new Integer(a.intValue() + b.intValue());
  }
}

三.类类的获取方式/获取无参构造

运行结果:

 

 

代码:

package com.lya.xml3;
/**
 * 类类的获取方式/获取无参构造
 * 
 * @author 李永安
 *
 */
public class Demo1 {
  public static void main(String[] args) throws Exception {
    // 获取类类的方式
    // ①Classforname
    Student student = new Student();
    Class c1 = Class.forName("com.lya.xml3.Student");
    System.out.println(c1);
    // ②getclass
    Class s1 = student.getClass();
    System.out.println(s1);
    // ③class
    Class s2 = Student.class;
    System.out.println(s2);
    // 获取无参构造
    // 基于类类基础上:实例对象
    Student student1 = (Student) c1.newInstance();
    System.out.println(student1);// com.lya.xml3.Student@26f0a63f
  }
}

二.反射

一.什么是反射?

Java反射是指在运行时动态地获取类的信息以及动态调用对象的方法和属性。Java反射API包括java.lang.Class类、java.lang.reflect包以及java.lang.reflect.Method、java.lang.reflect.Field、java.lang.reflect.Constructor等类,这些类提供了获取类的信息、动态创建对象、调用对象的方法和属性等功能。

简而言之就是:通过反射能够获取到类的所有信息

二.使用反射

调用公有,私有 的参构造方法运行结果如下:

代码如下:

package com.lya.xml3;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
/**
 * 反射动态方法使用
 * 
 * @author 李永安
 *
 */
public class Demo3 {
  public static void main(String[] args) throws ClassNotFoundException, Exception {
    // 创造对象
    Student student = new Student();
    // 使用类类
    Class c1 = Class.forName("com.lya.xml3.Student");
    // 一,无参方法
    Method m1 = c1.getMethod("hello");
    // obj实例 args参数
    Object invoke = m1.invoke(student);
    System.out.println(invoke);
    // 二,有参方法
    Method m2 = c1.getMethod("hello", String.class);
    // obj实例 args参数
    Object invoke2 = m2.invoke(student, "朱俊良");
    System.out.println(invoke2);
    // 三,有参私有方法
    Method m3= c1.getDeclaredMethod("add", Integer.class,Integer.class);
    //这里还要用setAccessible打开访问私用权限
    m3.setAccessible(true);
    // obj实例 args参数
    Object invoke3= m3.invoke(student, 1,2);
    System.out.println(invoke3);
  }
}

                       好了今天就分享到这了,希望能ban我们下期再见!!!

目录
相关文章
|
XML 数据格式
xml反射
xml反射
45 0
|
XML 数据格式
XML学习总结——SAXReader解析xml文件,实现反射 代码实例
XML学习总结——SAXReader解析xml文件,实现反射 代码实例
248 0
|
XML Java 关系型数据库
java+反射+多线程+生产者消费者模式+读取xml(SAX)入数据库mysql-【费元星Q9715234】
java+反射+多线程+生产者消费者模式+读取xml(SAX)入数据库mysql-【费元星Q9715234】 说明如下,不懂的问题直接我【费元星Q9715234】 1.反射的意义在于不将xml tag写死在sax 的代码中,直接配置到一个bean就可以了。
1245 0
|
XML C# 数据格式
C#对象序列化XML时报错:反射类型XXX时出错
弄了半天,查了很多资料,原来是类中没有含有参数为空的构造函数造成。如果要根据xmlserializer来把对象序列化成XML,必须至少有一个参数为空的构造函数,否则就会报该类型错误。
1770 0
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
72 1
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
1月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
25 2
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
125 8
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
29 3