- 浏览: 580331 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (253)
- java (84)
- python (22)
- 设计模式 (12)
- 数据结构和算法 (7)
- ibatis (1)
- 数据挖掘 (2)
- 集体智慧读书笔记 (1)
- ubuntu (4)
- lucene (11)
- 算法 第4版 (11)
- apache mina (16)
- memcached (1)
- android (9)
- netty (6)
- mongodb (2)
- maven (2)
- openfire (2)
- 服务端 (21)
- 产品 (0)
- apache (1)
- 选择 (2)
- 构架WEB高性能站点 (7)
- redis (8)
- 诗词歌赋 (3)
- 源代码阅读 (5)
- 前端 (1)
- javascript (3)
- guice (1)
- 分布式 (5)
- 总结-2014 (4)
- jvm (1)
最新评论
-
liu_jiaqiang:
写的挺好
maven多项目管理 -
H972900846:
我想知道哪里整的,如果是自己写的,那有点牛呀如果是抄的请说明出 ...
SSL身份认证原理 -
春天好:
博主写的很好,赞一个,多谢分享 *(^-^*)分享一个免费好用 ...
定向网站爬虫---初级例子 -
fenglingabc:
经过测试,parameterType="java.u ...
mybatis获取主键和存储过程返回值 -
jyghqpkl:
[u][/u] ...
Cookie的secure 属性
1:Class<?> ,Class对象时所有类可以实例化出来,多用来反射,得到该类的全部信息
其中?表示,无限参数和类型,避免类型转换
2:实列
首页定义一个Person类
package com.domain; public class Person { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String toString(){ StringBuffer sb = new StringBuffer(); sb.append("<name>").append(name).append("</name>"); sb.append("<age>").append(age).append("</age>"); return sb.toString(); } }
2:用反射来实例化Person类,操作该类的属性,方法。
package com.reflect; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import com.domain.Person; public class Reflect { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SecurityException, NoSuchMethodException, IllegalArgumentException, InvocationTargetException { Class<?> demo = null; //所有类的对象其实都是Class类的实列 demo = Class.forName("com.domain.Person");//得到Person类的Class类对象(尽量用这种方式) // demo = new Person().getClass(); 方法2 //demo = Person.class; Person p = (Person) demo.newInstance();//用类名得到person对象 //拿到本类的所有属性信息,如果实取得父类和实现接口的属性用demo.getFields()方法 Field[] field = demo.getDeclaredFields(); for (int i = 0; i < field.length; i++) { //权限修饰符 int mo = field[i].getModifiers(); String priy = Modifier.toString(mo); //属性类型 Class<?> type = field[i].getType(); System.out.println("属性的权限--" + priy + " 属性的类型---" + type.getName() + " 属性名---" + field[i].getName()); } /* * 調用改Person對象的方法 */ Object ob = null; ob = demo.newInstance(); pset(ob,"Age","11111",String.class); Pget(ob,"Age"); } private static void Pget(Object ob, String att) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Method method = ob.getClass().getMethod("get"+att); System.out.println(method.invoke(ob)); } private static void pset(Object ob, String att, Object value, Class<?> type) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Method method = ob.getClass().getMethod("set"+att,type); method.invoke(ob, value); } }
结果:
属性的权限--private 属性的类型---java.lang.String 属性名---name 属性的权限--private 属性的类型---java.lang.String 属性名---age 11111
发表评论
-
protobuf-dt插件
2015-03-24 13:16 1423protobuf-dt: 安装前先安装xtext 可 ... -
java循环标签
2015-03-20 16:13 612今天看 源码的时候 看到 一个小语法 参考: ... -
java程序性能优化 --阅读
2014-10-14 17:56 710闲着,真实无聊; 发现一本好书《java程序性能优 ... -
jetty invalid entry CRC问题
2014-08-04 11:42 16141: http://stackoverflow.com/qu ... -
guice注入
2014-05-24 12:13 9451Google Guice3.0: http://code. ... -
eclipse快捷键
2014-05-21 16:01 5791: clrl+alt+r : 最常用,快速定位到文件 2 ... -
java clone
2014-05-16 17:04 528转:http://www.blogjava.net/ora ... -
ThreadLocal
2014-05-13 18:39 772简单介绍一下ThreadLocal的原理:1.Thread ... -
hession
2014-04-30 12:33 697一、首先先说Hessian是什么? Hessian:he ... -
冒泡和快速排序java
2014-04-19 18:01 7621: 冒泡最简单一种: /** * 算法效率o ... -
java生产者和消费者模型三种实现
2014-04-19 17:51 13691: 生产者和消费者的问题,生产者生产产品到缓冲区,消费者 ... -
单例模式
2014-03-14 16:06 750今天看到群里,关于单例模式的多线程下的安全问题: 1:最 ... -
freemarker的使用
2014-02-28 16:42 8421:freemarker eclipse插件安装方法:ht ... -
java 引用类型和内存泄露
2013-11-21 17:48 587http://blog.csdn.net/luoshenfu ... -
java泛型
2013-11-07 13:52 436Class<T>在实例化的时候,T要替换成具体 ... -
filter执行顺序
2013-10-12 11:16 1124多个筛选器的运行顺序取决于下列规则: 将 filt ... -
spring rmi远程调用
2013-09-09 11:48 11781:以前用jmi发布服务,实现分布式的一种方式,远程调用, ... -
spring mvc返回204状态码
2013-07-24 09:27 39291:204是没内容 不跳转的 代表请求成功的意思 ... -
editplus去掉多余空行
2013-07-19 21:05 7391: ^[ \t]*\n 用正则表达式替换 -
spring3 aop 使用详细
2013-06-06 11:10 01:目标:拦截所有的@Controller中的方法 ...
相关推荐
1. 反射基础: Java反射机制主要基于`java.lang.Class`类和`java.lang.reflect`包中的接口和类。`Class`对象代表了运行时的类信息,通过`Class.forName()`方法可以获取到类的`Class`对象。此外,`java.lang.reflect...
Java 第三阶段增强分析需求,代码实现能力【反射】---- 代码 Java 第三阶段增强分析需求,代码实现能力【反射】---- 代码 Java 第三阶段增强分析需求,代码实现能力【反射】---- 代码 Java 第三阶段增强分析需求,...
java(教学0)韩建雷java反射机制-relea.ppt
JAVA 反射机制详解 JAVA 反射机制是 Java 语言中的一种动态获取信息和动态调用对象方法的功能。它允许程序在运行时获取类的信息、构造对象、获取成员变量和方法、调用对象的方法等。 Java 反射机制主要提供了以下...
Java基础[02-Java基础语法1].pdf Java基础[02-Java基础语法2].pdf Java基础[03-面向对象].pdf Java基础[04-继承上].pdf Java基础[04-继承下].pdf Java基础[05-多线程].pdf Java基础[06-集合].pdf Java基础[07-IO]....
这个"java基础教程----精华版"显然是一份精心整理的资料,旨在帮助初学者快速掌握Java编程的基础知识。下面将详细介绍Java语言的核心概念和关键知识点。 1. **Java语法基础**: - **变量**:在Java中,变量是存储...
Java设计模式、程序设计、反射、注解和泛型是Java开发中的核心概念,它们各自在不同的场景下发挥着重要作用,构建出高效、可维护的软件系统。 首先,Java设计模式是面向对象编程中的一种最佳实践,是解决常见问题的...
在这个特定的版本——mysql-connector-java-5.1.40-bin.jar中,我们找到了这个连接器的5.1系列的一个稳定版本。 首先,让我们了解JDBC的作用。JDBC是Sun Microsystems(现为Oracle公司)为Java编程语言设计的一套...
此版本是"ckeditor-java-core-3.5.3",专门针对Java平台进行了优化,允许开发者在Java应用程序中集成CKEditor的功能。 1. **CKEditor简介** CKEditor是一款基于JavaScript的WYSIWYG(所见即所得)文本编辑器,最初...
mysql驱动包 mysql-connector-java-5.1.13-bin.jar 方便快捷获取。。。
java图片处理工具类JAR包 java-image-scalingjar
Java 反射机制详解 Java 反射机制是 Java 语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。这种能力使得 Java 应用程序更加灵活,能够在运行时发现和修改自身...
### Java反射机制详解 #### 一、概述 Java反射机制是一种强大的编程技术,它允许运行时检查类的信息并操作对象的内部结构。本篇将基于Sun公司的官方文档《Java™ Core Reflection API and Specification》(1997年...
Java基础实战-Bank项目-项目需求和实现源码Java基础实战-Bank项目-项目需求和实现源码Java基础实战-Bank项目-项目需求和实现源码Java基础实战-Bank项目-项目需求和实现源码Java基础实战-Bank项目-项目需求和实现源码...
Java实列入门实列是初学者踏入Java编程世界的重要步骤,这个资料集合提供了一系列的示例,帮助新手理解并掌握Java的基本概念和语法。在这个过程中,我们将会探索以下几个关键知识点: 1. **Java环境配置**:在开始...
用于连接mysql数据库. mysql-connector-java-5.0.4-bin.jar
"eclipse-java-indigo-SR2-win32" 版本是针对Windows 32位系统的Eclipse IDE的一个特定构建,它属于Eclipse Indigo Service Release 2(SR2)。Indigo是Eclipse的第3.7版本,发布于2011年,它带来了许多新特性和改进...
Java反射是Java编程语言中的一个强大工具,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。在深入理解Java反射之前,我们首先要明白什么是反射机制。反射机制是指在运行状态中,...
Java-WebSocket jar包,封装WebSocket实现。
`java-unrar-0.3.jar`是一个库,它允许Java开发者处理RAR文件,无需依赖外部命令行工具,如WinRAR。这个库为Java提供了一个简单易用的API,可以方便地实现RAR文件的解压功能。 `java-unrar-0.3.jar`库是由Andrei ...