﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gavin&#039;s Blog &#187; Java反射</title>
	<atom:link href="http://laigw.name/tag/java%e5%8f%8d%e5%b0%84/feed" rel="self" type="application/rss+xml" />
	<link>http://laigw.name</link>
	<description>Keep it simple, stupid. Simplicity is beauty.</description>
	<lastBuildDate>Sun, 29 Jan 2012 07:14:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Java反射经典实例 Java Reflection Cookbook</title>
		<link>http://laigw.name/post/235.html</link>
		<comments>http://laigw.name/post/235.html#comments</comments>
		<pubDate>Wed, 19 Nov 2008 06:31:18 +0000</pubDate>
		<dc:creator>Gavin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java反射]]></category>
		<category><![CDATA[Reflection]]></category>

		<guid isPermaLink="false">http://www.laigw.name/?p=235</guid>
		<description><![CDATA[    Java提供了一套机制来动态执行方法和构造方法，以及数组操作等，这套机制就叫——反射。反射机制是如今很多流行框架的实现基础，其中包括Spring、Hibernate等。原理性的问题不是本文的重点，接下来让我们在实例中学习这套精彩的机制。

1. 得到某个对象的属性

&#160;查看代码 JAVA1
2
3
4
5
6
7
8
9
public Object getProperty&#40;Object owner, String fieldName&#41; throws Exception &#123;
    Class ownerClass = owner.getClass&#40;&#41;;
&#160;
    Field field = ownerClass.getField&#40;fieldName&#41;;
&#160;
    Object property = field.get&#40;owner&#41;;
&#160;
    return property;
&#125;

Class ownerClass = owner.getClass()：得到该对象的Class。
Field field = ownerClass.getField(fieldName)：通过Class得到类声明的属性。
Object property = field.get(owner)：通过对象得到该属性的实例，如果这个属性是非公有的，这里会报IllegalAccessException。
2. 得到某个类的静态属性

&#160;查看代码 JAVA1
2
3
4
5
6
7
8
9
10
public Object getStaticProperty&#40;String className, [...]]]></description>
		<wfw:commentRss>http://laigw.name/post/235.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

