Java·´Éä¾µäʵÀý Java Reflection Cookbook (ת)
JavaÌṩÁËÒ»Ì×»úÖÆÀ´¶¯Ì¬Ö´Ðз½·¨ºÍ¹¹Ôì·½·¨£¬ÒÔ¼°Êý×é²Ù×÷µÈ£¬ÕâÌ×»úÖÆ¾Í½Ð——·´Éä¡£·´Éä»úÖÆÊÇÈç½ñºÜ¶àÁ÷Ðпò¼ÜµÄʵÏÖ»ù´¡£¬ÆäÖаüÀ¨Spring¡¢HibernateµÈ¡£ÔÀíÐÔµÄÎÊÌâ²»ÊDZ¾ÎĵÄÖØµã£¬½ÓÏÂÀ´ÈÃÎÒÃÇÔÚʵÀýÖÐѧϰÕâÌ×¾«²ÊµÄ»úÖÆ¡£
1. µÃµ½Ä³¸ö¶ÔÏóµÄÊôÐÔ
1 public Object getProperty(Object owner, String fieldName) throws Exception {
2 Class ownerClass = owner.getClass();
3
4 Field field = ownerClass.getField(fieldName);
5
6 Object property = field.get(owner);
7
8 return property;
9 }
Class ownerClass = owner.getClass()£ºµÃµ½¸Ã¶ÔÏóµÄClass¡£
Field field = ownerClass.getField(fieldName)£ºÍ¨¹ýClassµÃµ½ÀàÉùÃ÷µÄÊôÐÔ¡£
Object property = field.get(owner)£ºÍ¨¹ý¶ÔÏóµÃµ½¸ÃÊôÐÔµÄʵÀý£¬Èç¹ûÕâ¸öÊôÐÔÊǷǹ«Óеģ¬ÕâÀï»á±¨IllegalAccessException¡£
2. µÃµ½Ä³¸öÀàµÄ¾²Ì¬ÊôÐÔ
1 public Object getStaticProperty(String className, String fieldName)
2 throws Exception {
3 Class ownerClass = Class.forName(className);
4
5 Field field = ownerClass.getField(fieldName);
6
7 Object property = field.get(ownerClass);
8
9 return property;
10 }
Class ownerClass = Class.forName(className) £ºÊ×Ïȵõ½Õâ¸öÀàµÄClass¡£
Field field = ownerClass.getField(fieldName)£ººÍÉÏÃæÒ»Ñù£¬Í¨¹ýClassµÃµ½ÀàÉùÃ÷µÄÊôÐÔ¡£
Object property = field.get(ownerClass) £ºÕâÀïºÍÉÏÃæÓÐЩ²»Í¬£¬ÒòΪ¸ÃÊôÐÔÊǾ²Ì¬µÄ£¬ËùÒÔÖ±½Ó´ÓÀàµÄClassÀïÈ¡¡£
3. Ö´ÐÐij¶ÔÏóµÄ·½·¨
1 public Object invokeMethod(Object owner, Str
Ïà¹ØÎĵµ£º
±¾ÎÄÔÖ·£ºhttp://www.hbzxr.com/web/36/2027736-1138928.html
java thisºÍsuper¹Ø¼ü×Ö ÓÐʲô×÷ÓóÉÔ±º¯ÊýÖж¨ÒåÁ˺ͳÉÔ±±äÁ¿ÖÐÏàͬµÄ±äÁ¿Ê±£¬ÒýÓóÉÔ±±äÁ¿ÒªÓÃthis. ¹¹Ô캯ÊýÖе÷ÓÃͬһ¸öÀàµÄÆäËû¹¹Ô캯ÊýʱÓÃthis ×ÓÀàÖи²¸ÇÁËÓÚ¸¸Àà³ÉÔ±±äÁ¿»ò³ÉÔ±º¯Êýʱ£¬ÔÚ×ÓÀàÖе÷Óø¸ÀàµÄ±äÁ¿»òº¯ÊýÒªÓÃsuper ×ÓÀàµÄ¹¹Ô캯 ......
1 ¡¢ÃæÏò¶ÔÏóµÄÌØÕ÷ÓÐÄÄЩ·½Ãæ
1.³éÏó£º
³éÏó¾ÍÊǺöÂÔÒ»¸öÖ÷ÌâÖÐÓ뵱ǰĿ±êÎ޹صÄÄÇЩ·½Ã棬ÒÔ±ã¸ü³ä·ÖµØ×¢ÒâÓ뵱ǰĿ±êÓйصķ½Ãæ¡£³éÏó²¢²»´òËãÁ˽âÈ«²¿ÎÊÌ⣬¶øÖ»ÊÇÑ¡ÔñÆäÖеÄÒ»²¿·Ö£¬ÔÝʱ²»Óò¿·Öϸ½Ú¡£³éÏó°üÀ¨Á½¸ö·½Ã棬һÊǹý³Ì³éÏ󣬶þÊÇÊý¾Ý³éÏó¡£
2.¼Ì³Ð£º
¼Ì³ÐÊÇÒ»ÖÖÁª½áÀàµÄ²ã´ÎÄ£ÐÍ£¬²¢ÇÒÔÊÐíºÍ¹ÄÀøÀൠ......
package com.svse.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class UserDAO {
/*
* javaµ÷Óô洢¹ý³Ì
*/
public int addUser(String username,int userage)
{
Connection conn = null;
int useri ......
JavaÕýÔò±í´ïʽµÄÓ¦Óã¬ÕâÀïÖ÷ÒªÓõ½ÁËPatternÀà¡£
Ô´ÂëÈçÏÂ:
package quiz;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* JavaÕýÔò±í´ïʽʾÀý
* */
public class RegularExpressionPattern {
public static void main(String[] args) {
//1.²ÉÓÃPattern.LITERALģʽ,
Patter ......
Ò»Ö±ÏëʵÏÖÏñDriverManagerÄÇÑùµÄgetConnection·½·¨£¬Í¨¹ý´Ë·½·¨¾Í¿ÉÒÔ»ñµÃÁ¬½Ó£¬¶øÇÒ»¹²»ÓÃÖ¸¶¨Driver£¬µ«Ç°ÌáÊÇDriverÒѾͨ¹ýClass.forName()»ònew Driver()½øÐÐÁ˼ÓÔØ¡£½ñÌìÖÕÓÚµÃÒÔʵÏÖ¡£
package quiz;
import java.lang.reflect.Field;
public class Cl ......