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 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还 ...
随机推荐
- BOM 浏览器对象模型学习
window对象属性 innerWidth/innerHeight 浏览器窗口的内部宽度与高度 outerWidth/outerHeight 浏览器的外部宽度与高度 length window.fra ...
- 自增或自减例子:i++和++i的相同点和不同点
/* Name:++i和i++的区别 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月15日 02:40:27 Description:熟悉前自增或自减的 ...
- node 上传文件 路径 重命名等问题
最近在学习node,想做一个简单的网站.首先想到的是上传文件的功能,查了下,发现有一个formidable模块,操作方便,便拿来尝试了一下,结果很纠结. 下载安装的就不用说了,用npm即可.说一下,自 ...
- 【Delphi内联汇编学习1】Delphi与汇编
我一直认为Delphi功能与C++相比毫不逊色,提供了丰富的控件和类.全部API以及嵌入的汇编.最近小弟在把C版的Huffman压缩改用Delphi写时,顺便“研究”了一下Delphi的位操作和嵌入式 ...
- BZOJ 1635: [Usaco2007 Jan]Tallest Cow 最高的牛
题目 1635: [Usaco2007 Jan]Tallest Cow 最高的牛 Time Limit: 5 Sec Memory Limit: 64 MB Description FJ's N ( ...
- ubuntu 常用生产环境部署配置测试调优
1,ubuntu monogdb 安装配置 2,ubuntu jdk1.7,tomcat7安装 3,ubuntu LAMP部署 4,mongodb 远程热备份及恢复 使用自带的mongodump和mo ...
- jar包问题
解决方法: 1右键项目build path的lib的add jars添加进来
- 如何使用ssh-keygen生成key
ssh-keygen - 生成.管理和转换认证密钥 通常使用:[b]ssh-keygen -i -f 公密匙名>> authorized_keys[/b] 语法详细介绍 [code]ssh ...
- BaseAdapter使listview设置不同背景图片并添加selector
前段时间为了实现根据item不同的内容实现不同的背景色google了好久只找到了个隔行换色,通过自定义SimpleAdapter终于实现了此功能,但是定义了selector并没有触发点击效果.今天重新 ...
- 移动端开发(四):swiper.js
swiper.js中文网:http://www.swiper.com.cn/ 文档结构 swiper.jquery.js 是需要引用jquery.js 或者 zepto.js 时,只需直接引用该 ...