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 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还 ...
随机推荐
- 在JSTL EL中处理java.util.Map,及嵌套List的情况
关联的键查找存储在映射中的值. 在方括号中指定键,并将相应的值作为表达式的值返回.例如,表达式 ${map['key']} 返回与 map标识符所引用的 Map 中的 "key" ...
- DelphiXe5中的双向绑定(使用使用TBindScope和TBindExpression,并覆盖AfterConstruction函数)
在Delphi下等这一功能很久了,虽然C#下早已实现了这一功能.但是在Dephi下尝试这项功能时还是有些许的激动.闲言少絮,直接上代码. unit BindingDemo; interface use ...
- 美国vps哪个比较好,vps国内访问速度最快!
沃网中国是一家成立于2008年的国内idc商,提供基于hyper-v架构的VPS产品,数据中心包括国内电信.美国洛杉矶等,他们采用的是国内访问最快的加州机房ping值,160-180左右相当给力的速度 ...
- Java图形化界面设计——布局管理器之BorderLayout(边界布局)
- 学习pthreads,给线程传递多个參数
上篇博文中.boss线程给其它线程传递的仅仅有一个參数,那么假如是多个參数呢?怎么传递呢?也许你会有这种疑问,带着这个疑问,我们进入本文的世界,这里传递多个參数,採用结构体,为什么呢?由于结构体里能够 ...
- Node.js笔记2
入门二 5. 事件 Node.js中所有的异步I/O操作完成时都会发送一个事件到事件队列. Events 事件模块 `events.EventEmitter` 简单用法: var EventEmitt ...
- Jquery开发插件的方法
Jquery未开发插件提供了两个方法: (1)Jquery.extend(object) -为Jquery类本身添加新的方法;代码如下: $.extend({ add:function(a,b) ...
- window 7 改变窗口颜色
对于刚刚重新安装的window7系统的盆友来说,不能改变窗口的颜色,和别人的window7窗口颜色和样子不一样和不好玩,那么我教大家,如何更改窗口颜色. 首先,重装的系统用软件激活之后,肯定还没还得急 ...
- spring4.1.3+springmvc+mybatis3.2.1整合
注意:这里使用了mybatis3.2.1版本,刚开始用了3.4.1的版本,会报一个很奇怪的错(java.lang.AbstractMethodError: org.mybatis.spring.tra ...
- POJ 3167 Cow Patterns(模式串浮动匹配)
题目链接:http://poj.org/problem?id=3167 题意:模式串可以浮动的模式匹配问题给出模式串的相对大小,需要找出模式串匹配次数和位置. 思路:统计比当前数小,和于当前数相等的, ...