java反射机制入门02
Field对象的机制与实现
1、Field对象概述
1)Java.lang.reflect.Field类,是用于表示类中、接口中属性对象的类。
2)可以操作类中私有,以及公有等全部属性和属性的信息。
2、Field对象的常用方法介绍
| 方法名 | 释义 |
| getName() | 获取属性名称 |
| getType() | 获取属性类型 |
| get(Object obj) | 取得obj对象中这个属性的值 |
| set(Object obj,Object value) | 向boj这个属性赋值value |
| setAccessible(boolean) | 启用/禁用访问控制权限 |
package com.rainmer.main;
import java.lang.reflect.Field;
import com.rainmer.bean.Book;
public class FieldTest {
//改方法用于使用传递过来的Class对象获取类中的属性
public void show(Class c1){
Field[] fi = c1.getDeclaredFields();//可以获取所有属性,无论公有还是私有
System.out.println("~~~~~~~~~~~~获取所有有属性(包括私有)~~~~~~~~~~~~~~");
for(Field ff : fi){
System.out.println(ff.getName());
System.out.println(ff.getType());
}
System.out.println("~~~~~~~~~~~~只能获取共有属性~~~~~~~~~~~~~~");
Field[] fi1 = c1.getFields();//只能获取共有属性
for (Field ff : fi1) {
System.out.println(ff.getName());//属性名称
System.out.println(ff.getType());//属性类型
}
}
//该方法用于使用传递过来的实体类对象获取属性以及属性的值
public void show(Object ob){
System.out.println("~~~~~~~~~~~~~~~通过实体类对象获取属性以及属性的值~~~~~~~~~~~~~~~~~~~");
Class cl = ob.getClass();
Field[] fi = cl.getDeclaredFields();
try{
for (Field ff : fi) {
ff.setAccessible(true);//启用访问权限,并不是把私有属性变成共有属性
System.out.println(ff.getName()+"值"+ff.get(ob));
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
Book bo = new Book();
bo.setId(1);
bo.setName("斗破苍穹");
bo.setType("玄幻");
FieldTest ft = new FieldTest();
ft.show(Book.class);
ft.show(bo);
}
}
运行结果:
调用了setName方法
~~~~~~~~~~~~获取所有有属性(包括私有)~~~~~~~~~~~~~~
id
int
name
class java.lang.String
type
class java.lang.String
~~~~~~~~~~~~只能获取共有属性~~~~~~~~~~~~~~
type
class java.lang.String
~~~~~~~~~~~~~~~通过实体类对象获取属性以及属性的值~~~~~~~~~~~~~~~~~~~
id值1
name值斗破苍穹
type值玄幻
java反射机制入门02的更多相关文章
- java反射机制入门01
java反射机制入门是我从极客学院的视频中学习的. 1.反射机制背景概述 反射(Reflection)是java被视为动态(或准动态)语言的一个关键性质.反射机制指的是程序在运行时能够获取任何类的内部 ...
- java反射机制入门04
需要jxl.jar package com.rainmer.main; import java.io.File; import java.io.IOException; import java.uti ...
- java反射机制入门3
Method对象的机制与实现 1.Method对象概述 1)java.lang.reflect.Method类是用于表示类中.接口中方法对象的类. 2)可以操作类中私有,以及公有等全部方法. 2.Me ...
- 大白话说Java反射:入门、使用、原理
文章首发于[博客园-陈树义],点击跳转到原文<大白话说Java反射:入门.进阶.原理> 反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释. 一般情况下,我们使用某个类时 ...
- 【54】Java反射机制剖析
java反射机制: 1.指的是可以于运行时加载,探知和使用编译期间完全未知的类. 2.程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; ...
- JAVA反射机制及理解
JAVA反射 往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它.当你能够解决这些问题时,便意味着你已经对这项知识入门了. 首先: 反 ...
- Java 反射机制(包括组成、结构、示例说明等内容)
第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”.这里“类的部分已经的信息”,可以是“类名”或“类的对象” ...
- 初探Java反射机制
反射库提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵java代码的程序库.这项功能被大量地应用于JavaBeans中.反射机制提供了在运行状态中获得和调用修改任何一个类的属性和方法的能力. ...
- Java 反射机制介绍
参考文章:http://www.cnblogs.com/skywang12345/p/3345205.html Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还 ...
随机推荐
- python进阶1--数据库支持
数据库支持 1.连接和游标 1)connect函数,该函数有多个参数,而具体使用那个参数取决于数据库.--连接数据库 常用参数: dsn:数据源名称 user:用户名 password:用户密码 ho ...
- MySQL Select 优化
准备: create table t(x int primary key,y int unique,z int); insert into t(x,y,z) values(1,1,1),(2,2,2) ...
- MySQl5.6最新安装
http://www.cnblogs.com/xiongpq/p/3384681.html http://dev.mysql.com/doc/refman/5.5/en/source-configur ...
- WM_SYSCOMMAND包括很多功能,比如:拖动左边框、拖动标题栏、滚动条滚动、点击最小化、双击标题栏——Delphi 通过事件代替了大部分常用的消息,所以Delphi 简单、易用、高效
procedure TForm1.WMSysCommand(var Message: TWMSysCommand); var str: string; begin case Message.CmdTy ...
- Advanced Customization of the jQuery Mobile Buttons | Appcropolis
Advanced Customization of the jQuery Mobile Buttons | Appcropolis Advanced Customization of the jQue ...
- Git库文件的状态
git库所在的文件夹(即.git所在的文件夹)中的文件的状态: (1)untracked:未跟踪,此文件在文件夹中,但并没有加入git库,不参与版本控制. 通过”git add”,”git commi ...
- sublime编辑器怎样高速输入PHP头部版本号声明
Sublime 菜单条->Tools→New Snippet→得到例如以下图内容: 输入下面内容: <snippet> <content><![CDATA[ < ...
- 刚开始学HTML自己做的,求大神些多多指教。
!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> ...
- gsoap 超时(timeout)设置
参考:http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.19 gsoap就不用介绍了,是一个c/c++编写的可用于服务端与客户端的连接工具. ...
- 不小心中了machook病毒
此文运用的是优雅的Markdown而书 前段回家过年的日子,我心爱的小air在运行时不停的弹出"machook停止运行"的提醒,上网google一下不看不要紧,才得知是mac上的一 ...