输出结果
Class:com.lwf.exception.Customer id:1 name:Tom age:21 Copy information:Tom 21
下面讲一下Class的getFields与getDeclaredFields的区别:
/** * */ package com.lwf.exception; import java.lang.reflect.Field; import java.util.Date; public class TestClassField { /** * @Title: main * @Description: TODO * @param @param args * @return void * @throws */ public static void main(String[] args) { Pig p = new Pig(); Field [] fields = p.getClass().getDeclaredFields(); for (int i = 0; i < fields.length; i++) { Field f = fields[i]; System.out.println(f.getName() + "," + f.getType().toString()); } //fields = null; System.out.println("----------------------------"); fields = p.getClass().getFields(); for (int i = 0; i < fields.length; i++) { Field f = fields[i]; System.out.println(f.getName() + "," + f.getType().toString()); } } } class Animal{ private String name; protected String color; public String sex; /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the color */ public String getColor() { return color; } /** * @param color the color to set */ public void setColor(String color) { this.color = color; } /** * @return the sex */ public String getSex() { return sex; } /** * @param sex the sex to set */ public void setSex(String sex) { this.sex = sex; } } class Pig extends Animal{ public int age; Date birthDay; /** * @return the age */ public int getAge() { return age; } /** * @param age the age to set */ public void setAge(int age) { this.age = age; } /** * @return the birthDay */ public Date getBirthDay() { return birthDay; } /** * @param birthDay the birthDay to set */ public void setBirthDay(Date birthDay) { this.birthDay = birthDay; } }
输出结果:
age,int birthDay,class java.util.Date ---------------------------- age,int sex,class java.lang.String
getFields与getDeclaredFields的区别如下
getFields返回类及所有父类的公有属性;getDeclaredFields只返回类自身的所有属性。
相关推荐
这个“Java反射事例”压缩包很可能包含了一个或多个简单的Java代码示例,旨在帮助初学者理解这一概念。 首先,让我们深入理解Java反射的基本概念: 1. 获取Class对象:要使用反射,我们首先需要获得Class对象。这...
【标题】"Java事例集合1"显然与Java编程语言相关,这可能是一个包含多个Java编程实例的资源包。在Java编程中,实例通常指的是具体的代码示例,用于展示某个概念或技术的运用。这个标题暗示我们可能会找到一系列用于...
9. **反射**:反射机制允许程序在运行时动态访问和修改类的信息,如创建类的实例、调用方法、访问字段等,提供了强大的灵活性。 10. **泛型**:泛型是Java5引入的新特性,用于在编译时检查类型安全,并且可以在编译...
10. **反射**:反射机制允许程序在运行时检查类的信息,并动态调用方法或访问属性。 11. **JVM**:Java虚拟机(JVM)是Java程序的运行环境,负责解释执行字节码并提供垃圾回收机制。 12. **设计模式**:设计模式是...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
5. **异常处理**:Java通过异常处理机制来处理程序运行时可能出现的问题,提供try-catch-finally结构来捕获和处理异常。 6. **集合框架**:Java集合框架包括接口(如List、Set、Map)和实现这些接口的类(如...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通讯编程和Java反射机制;...
4. 静态内部类:利用Java类加载机制保证初始化实例时只有一个线程,既实现了延迟加载,又保证了线程安全: ```java public class Singleton { private Singleton() {} private static class SingletonHolder { ...
动态代理在Java编程中是一种非常重要的...通过反射机制,我们可以在运行时创建并使用代理对象,使得代码更加灵活和可扩展。在实际开发中,动态代理常用于拦截器、AOP框架等场景,极大地提高了代码的复用性和维护性。