¶¯Ì¬´úÀíÊÇÖ¸¿Í»§Í¨¹ý´úÀíÀàÀ´µ÷ÓÃÆäËü¶ÔÏóµÄ·½·¨
¶¯Ì¬´úÀíʹÓó¡ºÏ:
•Ô¶³Ì·½·¨µ÷ÓÃ(RMI)
•
1.´´½¨Ò»¸öʵÏÖ½Ó¿ÚInvocationHandlerµÄÀ࣬Ëü±ØÐëʵÏÖinvoke·½·¨
2.´´½¨±»´úÀíµÄÀàÒÔ¼°½Ó¿Ú
3.ͨ¹ýProxyµÄ¾²Ì¬·½·¨
newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h) ´´½¨Ò»¸ö´úÀí
4.ͨ¹ý´úÀíµ÷Ó÷½·¨
²Î¼û³ÌÐòVectorProxy.java
view plaincopy to clipboardprint?
package com.langsin.dynamicproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;
import java.util.Vector;
public class VectorProxy implements InvocationHandler
{
private Object proxyobj;
public VectorProxy(Object obj)
{
  ......
C#ÖжÔbaseµÄ½âÊÍ(Òý×ÔMSDN):
base ¹Ø¼ü×ÖÓÃÓÚ´ÓÅÉÉúÀàÖзÃÎÊ»ùÀàµÄ³ÉÔ±£º
µ÷ÓûùÀàÉÏÒѱ»ÆäËû·½·¨ÖØÐ´µÄ·½·¨¡£
Ö¸¶¨´´½¨ÅÉÉúÀàʵÀýʱӦµ÷ÓõĻùÀ๹Ô캯Êý¡£
»ùÀà·ÃÎÊÖ»ÄÜÔÚ¹¹Ô캯Êý¡¢ÊµÀý·½·¨»òʵÀýÊôÐÔ·ÃÎÊÆ÷ÖнøÐС£
´Ó¾²Ì¬·½·¨ÖÐʹÓà base ¹Ø¼ü×ÖÊÇ´íÎóµÄ¡£
ÔÚ±¾ÀýÖУ¬»ùÀà Person ºÍÅÉÉúÀà Employee ¶¼ÓÐÒ»¸öÃûΪ Getinfo µÄ·½·¨¡£Í¨¹ýʹÓà base ¹Ø¼ü×Ö£¬¿ÉÒÔ´ÓÅÉÉúÀàÖе÷ÓûùÀàµÄ Getinfo ·½·¨¡£
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";
public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}
class Employee : Person
{
public string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the ......
C#ÖжÔbaseµÄ½âÊÍ(Òý×ÔMSDN):
base ¹Ø¼ü×ÖÓÃÓÚ´ÓÅÉÉúÀàÖзÃÎÊ»ùÀàµÄ³ÉÔ±£º
µ÷ÓûùÀàÉÏÒѱ»ÆäËû·½·¨ÖØÐ´µÄ·½·¨¡£
Ö¸¶¨´´½¨ÅÉÉúÀàʵÀýʱӦµ÷ÓõĻùÀ๹Ô캯Êý¡£
»ùÀà·ÃÎÊÖ»ÄÜÔÚ¹¹Ô캯Êý¡¢ÊµÀý·½·¨»òʵÀýÊôÐÔ·ÃÎÊÆ÷ÖнøÐС£
´Ó¾²Ì¬·½·¨ÖÐʹÓà base ¹Ø¼ü×ÖÊÇ´íÎóµÄ¡£
ÔÚ±¾ÀýÖУ¬»ùÀà Person ºÍÅÉÉúÀà Employee ¶¼ÓÐÒ»¸öÃûΪ Getinfo µÄ·½·¨¡£Í¨¹ýʹÓà base ¹Ø¼ü×Ö£¬¿ÉÒÔ´ÓÅÉÉúÀàÖе÷ÓûùÀàµÄ Getinfo ·½·¨¡£
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";
public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}
class Employee : Person
{
public string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the ......
Java·´Éä»úÖÆ
ÕªÒª
Reflection ÊÇJava±»ÊÓΪ¶¯Ì¬£¨»ò×¼¶¯Ì¬£©ÓïÑÔµÄÒ»¸ö¹Ø¼üÐÔÖÊ¡£Õâ¸ö»úÖÆÔÊÐí³ÌÐòÔÚÔËÐÐʱ͸¹ýReflection APIsÈ¡µÃÈκÎÒ»¸öÒÑÖªÃû³ÆµÄclassµÄÄÚ²¿ÐÅÏ¢£¬°üÀ¨Æämodifiers£¨ÖîÈçpublic, static µÈµÈ£©¡¢superclass£¨ÀýÈçObject£©¡¢ÊµÏÖÖ®interfaces£¨ÀýÈçCloneable£©£¬Ò²°üÀ¨fieldsºÍmethodsµÄËùÓÐÐÅÏ¢£¬²¢¿ÉÓÚÔËÐÐʱ¸Ä±äfieldsÄÚÈÝ»ò»½Æðmethods¡£±¾ÎĽèÓÉʵÀý£¬´óÃæ»ýʾ·¶Reflection APIs¡£
¹ØÓÚ±¾ÎÄ£º
¶ÁÕß»ù´¡£º¾ß±¸Java ÓïÑÔ»ù´¡¡£
±¾ÎÄÊÊÓù¤¾ß£ºJDK1.5
¹Ø¼ü´Ê£º
Introspection£¨ÄÚÊ¡¡¢ÄÚ¹Û£©
Reflection£¨·´É䣩
ÓÐʱºòÎÒÃÇ˵ij¸öÓïÑÔ¾ßÓкÜÇ¿µÄ¶¯Ì¬ÐÔ£¬ÓÐʱºòÎÒÃÇ»áÇø·Ö¶¯Ì¬ºÍ¾²Ì¬µÄ²»Í¬¼¼ÊõÓë×÷·¨¡£ÎÒÃÇÀÊÀÊÉϿڶ¯Ì¬°ó¶¨£¨dynamic binding£©¡¢¶¯Ì¬Á´½Ó£¨dynamic linking£©¡¢¶¯Ì¬¼ÓÔØ£¨dynamic loading£©µÈ¡£È»¶ø“¶¯Ì¬”Ò»´ÊÆäʵûÓоø¶Ô¶øÆÕ±éÊÊÓõÄÑϸñ¶¨Ò壬ÓÐʱºòÉõÖÁÏñ¶ÔÏóµ¼Ïòµ±³õ±»µ¼Èë±à³ÌÁìÓòÒ»Ñù£¬Ò»ÈËÒ»°ÑºÅ£¬¸÷´µ¸÷µÄµ÷¡£
Ò»°ã¶øÑÔ£¬¿ª·¢ÕßÉçȺ˵µ½¶¯Ì¬ÓïÑÔ£¬´óÖÂÈÏͬµÄÒ»¸ö¶¨ÒåÊÇ£º“³ÌÐòÔËÐÐʱ£¬ÔÊÐí¸Ä±ä³ÌÐò½á¹¹»ò±äÁ¿ÀàÐÍ£¬ÕâÖÖÓïÑÔ³ÆÎª¶¯Ì¬ÓïÑÔ”¡£´ÓÕâ¸ö¹Ûµã¿´£¬Perl£¬Python£¬RubyÊǶ¯Ì¬ÓïÑÔ£¬C++£ ......
//ʹÓÃabstractÄ¿µÄÊÇΪÁËÈÃʹÓÃÕßÖ»Äܵ÷ÓÃgetInstance»ñȡʵÀý
public abstract class RegexUtil {
public static void main(String[] args) {
RegexUtil ru = RegexUtil.getInstance();
String regexp = "(\\d+.\\d+.\\d+.\\d+):(\\d+)";
String data = "ldap://192.168.16.152:389/";
System.out.println(">>>" + ru.matchGroup(regexp, data).size());
}
public List<String> matchGroup(String regexp, String data) {
Pattern p = Pattern.compile(regexp);
Matcher matcher = p.matcher(data);
List<String> list = null;
while (matcher.find()) {
int length = matcher.groupCount();
list = new java.util.ArrayList<String>(length);
for (int i = 1; i < length + 1; i++) {
list.add(matcher.group(i));
}
}
return list;
}
private static RegexUtil ru = null;
//µ¥Ì«Ä£Ê½
public static RegexUtil getInstance() {
......
×÷Õß:cleverpig(×÷ÕßµÄBlog:http://blog.matrix.org.cn/page/cleverpig)
ÔÎÄ:http://www.matrix.org.cn/resource/article/44/44055_Java+Annotation+Reflect.html
¹Ø¼ü×Ö:java,annotation,reflect
ǰÑÔ£º
ÔÚÉÏÆªÎÄÕ¡¶Java AnnotationÈëÃÅ¡·ÖиÅÒªÐԵĽéÉÜÁËAnnotationµÄ¶¨Ò塢ʹÓ㬷¶Î§º¸Ç½Ï¹ã£¬µ«ÊÇÉî¶È²»¹»¡£ËùÒÔ×÷ÕßÔÚ¡¶Java AnnotationÈëÃÅ¡·ºó£¬¼ÌÐøÕûÀíÁËAnnotationµÄ¸ÅÄîºÍ֪ʶµã£¬Óëϲ»¶researchµÄÅóÓÑÃǹ²Ïí¡£
ÔĶÁÌáʾ£ºÎÄÖÐÌáµ½µÄ³ÌÐò³ÉÔ±»òÕß³ÌÐòÔªËØÊÇÒ»¸ö¸ÅÄָ×é³É³ÌÐò´úÂëµÄµ¥Ôª£ºÈçÀà¡¢·½·¨¡¢³ÉÔ±±äÁ¿¡£
Ò»¡¢Annotation¾¿¾¹ÊÇʲô£¿
Annotation ÌṩÁËÒ»ÌõÓë³ÌÐòÔªËØ¹ØÁªÈκÎÐÅÏ¢»òÕßÈκÎÔªÊý¾Ý£¨metadata£©µÄ;¾¶¡£´ÓijЩ·½Ãæ¿´£¬annotation¾ÍÏñÐÞÊηûÒ»Ñù±»Ê¹Ó㬲¢Ó¦ÓÃÓÚ°ü¡¢ÀàÐÍ¡¢¹¹Ôì·½·¨¡¢·½·¨¡¢³ÉÔ±±äÁ¿¡¢²ÎÊý¡¢±¾µØ±äÁ¿µÄÉùÃ÷ÖС£ÕâЩÐÅÏ¢±»´æ´¢ÔÚannotationµÄ“name=value”½á¹¹¶ÔÖС£ annotationÀàÐÍÊÇÒ»ÖÖ½Ó¿Ú£¬Äܹ»Í¨¹ýjava·´ÉäAPIµÄ·½Ê½Ìṩ¶ÔÆäÐÅÏ¢µÄ·ÃÎÊ¡£
annotationÄܱ»ÓÃÀ´ÎªÄ³¸ö³ÌÐòÔªËØ£¨Àà¡¢·½·¨¡¢³ÉÔ±±äÁ¿µÈ£©¹ØÁªÈκεÄÐÅÏ¢¡£ÐèҪעÒâµÄÊÇ£¬ÕâÀï´æÔÚ×ÅÒ»¸ö»ù±¾µÄDZ¹æÔò£ºannotaion²»ÄÜÓ°Ïì³ÌÐò´úÂëµÄÖ´ÐУ¬Î ......
JavaÈí¼þ¿ª·¢¹æ·¶
°æ±¾ËµÃ÷
°æ±¾
×÷Õß
ÈÕÆÚ
±¸×¢
Õ÷Çó°æ
ÑîÕÂÔÆ¡¢ÌÆÃ÷ʤ
2006-09-05
Ìá³ö³õʼ°æ±¾£¬·Ö·¢¸÷Ïà¹ØÈËÔ±
ÐÞ¶©°æ
ÌÆÃ÷ʤ
2006-09-29
Õ÷Çó´ó¼ÒÒâ¼ûµÄ»ù´¡ÉÏ£¬Öƶ©µÄÐÞ¶©°æ
1.0°æ
ÌÆÃ÷ʤ
2007-09-18
×ܽáǰÆÚ¿ª·¢¾Ñ飬¶Ô¿ª·¢¹æ·¶½øÐÐÉý¼¶¡£¼Ó´Öº£ÂÌɫΪÐÞ¶©ÄÚÈÝ£¬À¶É«ÎªÐÂÔöÄÚÈÝ¡£
2.0°æ
ÌÆÃ÷ʤ
2008-11-18
×ܽáǰÆÚÏîÄ¿¿ª·¢¾Ñ飬¶Ô¿ª·¢¹æ·¶½øÐÐÉý¼¶ÍêÉÆ¡£±¾°æ¸Ä¶¯½Ï´ó£¬²»ÔÙÒÔÑÕÉ«¼ÓÒÔÇø·Ö¡£
JavaÈí¼þ¿ª·¢¹æ·¶ 1
1 Ð÷ÂÛ 4
1.1 ¸ÅÊö 4
1.2 ÓÅÁ¼´úÂëµÄÌØµã 4
1.3 ÊÊÓ÷¶Î§ 4
2 ×ÜÌå¼Ü¹¹ 5
2.1 ¿ò¼Ü¸ÅÊö 5
2.2 ¿ò¼Ü¹æ·¶ 6
2.2.1 DTO¹æ·¶ 7
2.2.2 SQLModel¹æ·¶ 7
2.2.3 DAO¹æ·¶ 8
2.2.4 ......