Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ120²¿·Ö
°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¹¹½¨¹¤¾ß±ØÐë¿ÉÒÔ´´½¨¡¡Bean¡¡£¨Èç¹ûËüÊÇĬÈϵĹ¹½¨Æ÷µÄ»°£¬Ëü¾Í¿ÉÒÔ×ö£©È»ºó£¬ÔÚ´Ë·¶Î§Íâ·ÃÎÊBean¡¡µÄÔ´¡¡
´úÂ룬ÌáÈ¡ËùÓеıØÒªµÄÐÅÏ¢ÒÔ´´Á¢ÊôÐÔ±íºÍʼþ´¦ÀíÆ÷¡£¡¡¡¡
½â¾ö·½°¸µÄÒ»²¿·ÖÔÚ¡¡11Õ½áβ²¿·ÖÒѾÏÔÏÖ³öÀ´£ºJava¡¡1¡£1¡¡°æµÄÓ³ÏóÔÊÐíÒ»¸öÄäÃûÀàµÄËùÓз½·¨±»·¢ÏÖ¡£¡¡
ÕâÍêÃÀµØ½â¾öÁËBean¡¡µÄÄÑÌâ¶øÎÞÐèÎÒÃÇʹÓÃһЩÌØÊâµÄÓïÑԹؼü×ÖÏñÔÚÆäËüµÄ¿ÉÊÓ»¯±à³ÌÓïÑÔÖÐËùÐèÒªµÄÄÇ¡¡
Ñù¡£ÊÂʵÉÏ£¬Ò»¸öÖ÷ÒªµÄÔÒòÊÇÓ³ÏóÔö¼Óµ½Java¡¡1¡£1¡¡°æÖÐÒÔÖ§³Ö¡¡Beans¡¡£¨¾¡¹ÜÓ³ÏóͬÑùÖ§³Ö¶ÔÏó´®ÁªºÍÔ¶³Ì¡¡
·½·¨µ÷Óã©¡£ÒòΪÎÒÃÇ¿ÉÄÜÏ£ÍûÓ¦ÓóÌÐò¹¹½¨¹¤¾ßµÄ¿ª·¢Õß½«²»µÃ²»Ó³Ïóÿ¸öBean¡¡²¢ÇÒͨ¹ýËüÃǵķ½·¨ËÑË÷¡¡
ÒÔÕÒµ½Bean¡¡µÄÊôÐÔºÍʼþ¡£¡¡¡¡
Õ⵱ȻÊÇ¿ÉÄܵģ¬µ«ÊÇ¡¡Java¡¡µÄÑÐÖÆÕßÃÇÏ£ÍûΪÿ¸öʹÓÃËüµÄÓû§Ìṩһ¸ö±ê×¼µÄ½Ó¿Ú£¬¶ø²»½ö½öÊÇʹ¡¡Bean¡¡
¸üΪ¼òµ¥Ò×Ó㬲»¹ýËûÃÇҲͬÑùÌṩÁËÒ»¸ö´´½¨¸ü¸´Ôӵġ¡Bean¡¡µÄ±ê×¼·½·¨¡£Õâ¸ö½Ó¿Ú¾ÍÊÇIntrospector¡¡
À࣬ÔÚÕâ¸öÀàÖÐ×îÖØÒªµÄ·½·¨¾²Ì¬µÄgetBeanInfo£¨£©¡¡¡£ÎÒÃÇͨ¹ýÒ»¸öÀà´¦ÀíÕâ¸ö·½·¨²¢ÇÒgetBeanInfo£¨£©·½·¨¡¡
È«ÃæµØ¶ÔÀà½øÐвéѯ£¬·µ»ØÒ»¸öÎÒÃÇ¿ÉÒÔ½øÐÐÏêϸÑо¿ÒÔ·¢ÏÖÆäÊôÐÔ¡¢·½·¨ºÍʼþµÄ¡¡BeanInfo¡¡¶ÔÏ󡣡¡¡¡
ͨ³£ÎÒÃDz»»áÁôÒâÕâÑùµÄһЩÊÂÎ¡ªÎÒÃÇ¿ÉÄÜ»áʹÓÃÎÒÃÇ´ó¶àÊýµÄÏֳɵÄBean¡¡£¬²¢ÇÒÎÒÃDz»ÐèÒªÁ˽âËùÓС¡
µÄÔڵײãÔËÐеļ¼Êõϸ½Ú¡£ÎÒÃÇ»á¼òµ¥µØÍÏ·ÅÎÒÃǵÄBean¡¡µ½ÎÒÃÇ´°ÌåÖУ¬È»ºóÅäÖÃËüÃǵÄÊôÐÔ²¢ÇÒΪʼþ±à¡¡
д´¦ÀíÆ÷¡£ÎÞÂÛÈçºÎËü¶¼ÊÇÒ»¸öÓÐȤµÄ²¢ÇÒÊÇÓнÌÓýÒâÒåµÄʹÓÃIntrospector¡¡À´ÏÔʾ¹ØÓÚBean¡¡ÐÅÏ¢µÄÁ·¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡458¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡460¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Ï°£¬ºÃÀ²£¬Ïл°ÉÙ˵£¬ÕâÀïÓÐÒ»¸ö¹¤¾ßÇëÔËÐÐËü£¨ÎÒÃÇ¿ÉÒÔÔÚ¡¡forgbean¡¡×ÓĿ¼ÖÐÕÒµ½Ëü£©£º¡¡¡¡
¡¡¡¡
//£º¡¡BeanDumper¡£java¡¡¡¡
//¡¡A¡¡method¡¡to¡¡introspect¡¡a¡¡Bean¡¡¡¡
import¡¡java¡£beans¡£*£»¡¡¡¡
import¡¡java¡£lang¡£reflect¡£*£»¡¡¡¡
¡¡¡¡
public¡¡class¡¡BeanDumper¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡dump£¨Class¡¡bean£©£û¡¡¡¡
¡¡¡¡¡¡¡¡BeanInfo¡¡bi¡¡=¡¡null£»¡¡¡¡
¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡bi¡¡=¡¡Introspector¡£getBeanInfo£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bean£»¡¡java¡£lang¡£Object¡£class£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡catch£¨IntrospectionException¡¡ex£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Couldn't¡¡introspect¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡bean¡£getName£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨1£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡PropertyDescriptor£§£§¡¡properties¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡bi¡£getPropertyDescriptors£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡properties¡£length£»¡¡i£«£«£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Class¡¡p¡¡=¡¡properties£§i£§¡£getPropertyType£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Property¡¡type£ºn¡¡¡¡¡¨¡¡£«¡¡p¡£getName£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Property¡¡name£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡properties£§i£§¡£getName£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Method¡¡readMethod¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡properties£§i£§¡£getReadMethod£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡if£¨readMethod¡¡£¡=¡¡null£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Read¡¡method£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡readMethod¡£toString£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Method¡¡writeMethod¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡properties£§i£§¡£getWriteMethod£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡if£¨writeMethod¡¡£¡=¡¡null£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Write¡¡method£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡writeMethod¡£toString£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨====================¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Public¡¡methods£º¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡MethodDescriptor£§£§¡¡methods¡¡=¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡bi¡£getMethodDescriptors£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡methods¡£length£»¡¡i£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡methods£§i£§¡£getMethod£¨£©¡£toString£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨======================¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Event¡¡support£º¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡EventSetDescriptor£§£§¡¡events¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡bi¡£getEventSetDescriptors£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡events¡£length£»¡¡i£«£«£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡459¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡461¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨Listener¡¡type£º¡¡n¡¡¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡events£§i£§¡£getListenerType£¨£©¡£getName£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Method£§£§¡¡lm¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡events£§i£§¡£getListenerMethods£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡for£¨int¡¡j¡¡=¡¡0£»¡¡j¡¡¡¶¡¡lm¡£length£»¡¡j£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Listener¡¡method£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lm£§j£§¡£getName£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡MethodDescriptor£§£§¡¡lmd¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡events¡¡£§i£§¡£getListenerMethodDescriptors£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡for£¨int¡¡j¡¡=¡¡0£»¡¡j¡¡¡¶¡¡lmd¡£length£»¡¡j£«£«£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Method¡¡descriptor£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lmd£§j£§¡£getMethod£¨£©¡£toString£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Method¡¡addListener¡¡=¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡events£§i£§¡£getAddListenerMethod£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Add¡¡Listener¡¡Method£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡addListener¡£toString£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Method¡¡removeListener¡¡=¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡events£§i£§¡£getRemoveListenerMethod£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Remove¡¡Listener¡¡Method£ºn¡¡¡¡¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡removeListener¡£toString£¨£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨====================¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡//¡¡Dump¡¡the¡¡class¡¡of¡¡your¡¡choice£º¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡if£¨args¡£length¡¡¡¶¡¡1£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¨usage£º¡¡n¡¨¡¡£«¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨BeanDumper¡¡fully¡£qualified¡£class¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨0£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡Class¡¡c¡¡=¡¡null£»¡¡¡¡
¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡c¡¡=¡¡Class¡£forName£¨args£§0£§£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡catch£¨ClassNotFoundException¡¡ex£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£err¡£println£¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Couldn't¡¡find¡¡¡¨¡¡£«¡¡args£§0£§£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£exit£¨0£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡dump£¨c£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
BeanDumper¡£dump£¨£©ÊÇÒ»¸ö¿ÉÒÔ×öÈκι¤×÷µÄ·½·¨¡£Ê×ÏÈËüÊÔͼ´´½¨Ò»¸öBeanInfo¡¡¶ÔÏó£¬Èç¹û³É¹¦µØµ÷Óá¡
BeanInfo¡¡µÄ·½·¨£¬¾Í²úÉú¹ØÓÚÊôÐÔ¡¢·½·¨ºÍʼþµÄÐÅÏ¢¡£ÔÚ¡¡Introspector¡£getBeanInfo£¨£©ÖУ¬ÎÒÃÇ»á×¢Òâµ½¡¡
ÓÐÒ»¸öÁíÍâµÄ×Ô±äÁ¿¡£ÓÉËüÀ´Í¨Öª¡¡Introspector·ÃÎʼ̳ÐÌåϵµÄµØµã¡£ÔÚÕâÖÖÇé¿öÏ£¬ËüÔÚ·ÖÎöËùÓжÔÏ󷽡¡
·¨Ç°Í£Ï£¬ÒòΪÎÒÃǶԿ´µ½ÄÇЩ²¢²»¸ÐÐËȤ¡£¡¡¡¡
ÒòΪÊôÐÔ£¬getPropertyDescriptors£¨£©·µ»ØÒ»×éµÄÊôÐÔÃèÊö·ûºÅ¡£¶ÔÓÚÿ¸öÃèÊö·ûºÅÎÒÃÇ¿ÉÒÔµ÷Óá¡
getPropertyType£¨£©·½·¨³¹µ×µÄͨ¹ýÊôÐÔ·½·¨·¢ÏÖÀàµÄ¶ÔÏó¡£Õâʱ£¬ÎÒÃÇ¿ÉÒÔÓÃgetName£¨£©·½·¨µÃµ½Ã¿¸öÊôÐÔ¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡460¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡462¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
µÄ¼ÙÃû£¨´Ó·½·¨ÃûÖÐÌáÈ¡£©£¬getname£¨£©·½·¨Óá¡getReadMethod£¨£©ºÍgetWriteMethod£¨£©Íê³É¶ÁºÍдµÄ²Ù×÷¡£×î¡¡
ºóµÄÁ½¸ö·½·¨·µ»ØÒ»¸ö¿ÉÒÔÕæÕýµØÓÃÀ´µ÷ÓÃÔÚ¶ÔÏóÉϵ÷ÓÃÏàÓ¦µÄ·½·¨·½·¨¶ÔÏó£¨ÕâÊÇÓ³ÏóµÄÒ»²¿·Ö£©¡£¶ÔÓÚ¡¡
¹«¹²·½·¨£¨°üÀ¨ÊôÐÔ·½·¨£©£¬getMethodDescriptors£¨¡¡¡¡£©·µ»ØÒ»×é·½·¨ÃèÊö×Ö·û¡£Ã¿Ò»¸öÎÒÃǶ¼¿ÉÒԵõ½Ïà¡¡
µ±µÄ·½·¨¶ÔÏ󲢿ÉÒÔÏÔʾ³öËüÃǵÄÃû×Ö¡£¡¡¡¡
¶ÔÓÚʼþ¶øÑÔ£¬getEventSetDescriptors£¨£©·µ»ØÒ»×éʼþÃèÊö×Ö·û¡£ËüÃÇÖеÄÿһ¸ö¶¼¿ÉÒÔ±»²éѯÒÔÕÒ³ö½Ó¡¡
ÊÕÆ÷µÄÀ࣬½ÓÊÕÆ÷ÀàµÄ·½·¨ÒÔ¼°Ôö¼ÓºÍɾ³ý½ÓÊÕÆ÷µÄ·½·¨¡£BeanDumper¡¡³ÌÐò´òÓ¡³öËùÓеÄÕâЩÐÅÏ¢¡£¡¡¡¡
Èç¹ûÎÒÃǵ÷ÓÃBeanDumper¡¡ÔÚFrog¡¡ÀàÖУ¬¾ÍÏñÕâÑù£º¡¡¡¡
java¡¡BeanDumper¡¡frogbean¡£Frog¡¡¡¡
ËüµÄÊä³ö½á¹ûÈçÏ£¨ÒÑɾ³ýÕâ¶ù²»ÐèÒªµÄ¶îÍâϸ½Ú£©£º¡¡¡¡
¡¡¡¡
class¡¡name£º¡¡Frog¡¡¡¡
Property¡¡type£º¡¡¡¡
¡¡¡¡Color¡¡¡¡
Property¡¡name£º¡¡¡¡
¡¡¡¡color¡¡¡¡
Read¡¡method£º¡¡¡¡
¡¡¡¡public¡¡Color¡¡getColor£¨£©¡¡¡¡
Write¡¡method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡setColor£¨Color£©¡¡¡¡
====================¡¡¡¡
Property¡¡type£º¡¡¡¡
¡¡¡¡Spots¡¡¡¡
Property¡¡name£º¡¡¡¡
¡¡¡¡spots¡¡¡¡
Read¡¡method£º¡¡¡¡
¡¡¡¡public¡¡Spots¡¡getSpots£¨£©¡¡¡¡
Write¡¡method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡setSpots£¨Spots£©¡¡¡¡
====================¡¡¡¡
Property¡¡type£º¡¡¡¡
¡¡¡¡boolean¡¡¡¡
Property¡¡name£º¡¡¡¡
¡¡¡¡jumper¡¡¡¡
Read¡¡method£º¡¡¡¡
¡¡¡¡public¡¡boolean¡¡isJumper£¨£©¡¡¡¡
Write¡¡method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡setJumper£¨boolean£©¡¡¡¡
====================¡¡¡¡
Property¡¡type£º¡¡¡¡
¡¡¡¡int¡¡¡¡
Property¡¡name£º¡¡¡¡
¡¡¡¡jumps¡¡¡¡
Read¡¡method£º¡¡¡¡
¡¡¡¡public¡¡int¡¡getJumps£¨£©¡¡¡¡
Write¡¡method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡setJumps£¨int£©¡¡¡¡
====================¡¡¡¡
Public¡¡methods£º¡¡¡¡
public¡¡void¡¡setJumps£¨int£©¡¡¡¡
public¡¡void¡¡croak£¨£©¡¡¡¡
public¡¡void¡¡removeActionListener£¨ActionListener£©¡¡¡¡
public¡¡void¡¡addActionListener£¨ActionListener£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡461¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡463¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
public¡¡int¡¡getJumps£¨£©¡¡¡¡
public¡¡void¡¡setColor£¨Color£©¡¡¡¡
public¡¡void¡¡setSpots£¨Spots£©¡¡¡¡
public¡¡void¡¡setJumper£¨boolean£©¡¡¡¡
public¡¡boolean¡¡isJumper£¨£©¡¡¡¡
public¡¡void¡¡addKeyListener£¨KeyListener£©¡¡¡¡
public¡¡Color¡¡getColor£¨£©¡¡¡¡
public¡¡void¡¡removeKeyListener£¨KeyListener£©¡¡¡¡
public¡¡Spots¡¡getSpots£¨£©¡¡¡¡
======================¡¡¡¡
Event¡¡support£º¡¡¡¡
Listener¡¡type¡¡£º¡¡¡¡
¡¡¡¡KeyListener¡¡¡¡
Listener¡¡method£º¡¡¡¡
¡¡¡¡keyTyped¡¡¡¡
Listener¡¡method£º¡¡¡¡
¡¡¡¡keyPressed¡¡¡¡
Listener¡¡method£º¡¡¡¡
¡¡¡¡keyReleased¡¡¡¡
Method¡¡descriptor£º¡¡¡¡
¡¡¡¡public¡¡void¡¡keyTyped£¨KeyEvent£©¡¡¡¡
Method¡¡descriptor£º¡¡¡¡
¡¡¡¡public¡¡void¡¡keyPressed£¨KeyEvent£©¡¡¡¡
Method¡¡descriptor£º¡¡¡¡
¡¡¡¡public¡¡void¡¡keyReleased£¨KeyEvent£©¡¡¡¡
Add¡¡Listener¡¡Method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡addKeyListener£¨KeyListener£©¡¡¡¡
Remove¡¡Listener¡¡Method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡removeKeyListener£¨KeyListener£©¡¡¡¡
====================¡¡¡¡
Listener¡¡type£º¡¡¡¡
¡¡¡¡ActionListener¡¡¡¡
Listener¡¡method£º¡¡¡¡
¡¡¡¡actionPerformed¡¡¡¡
Method¡¡descriptor£º¡¡¡¡
¡¡¡¡public¡¡void¡¡actionPerformed£¨ActionEvent£©¡¡¡¡
Add¡¡Listener¡¡Method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡addActionListener£¨ActionListener£©¡¡¡¡
Remove¡¡Listener¡¡Method£º¡¡¡¡
¡¡¡¡public¡¡void¡¡removeActionListener£¨ActionListener£©¡¡¡¡
====================¡¡¡¡
¡¡¡¡
Õâ¸ö½á¹û½Òʾ³öÁË¡¡Introspector¡¡ÔÚ´ÓÎÒÃǵġ¡Bean¡¡²úÉúÒ»¸öBeanInfo¡¡¶ÔÏóʱ¿´µ½µÄ´ó²¿·ÖÄÚÈÝ¡£ÎÒÃÇ¿É×¢Òâ¡¡
µ½ÊôÐÔµÄÀàÐͺÍËüÃǵÄÃû×ÖÊÇÏ໥¶ÀÁ¢µÄ¡£Çë×¢ÒâСдµÄÊôÐÔÃû¡££¨µ±ÊôÐÔÃû¿ªÍ·ÔÚÒ»ÐÐÖÐÓг¬¹ý²»Ö¹µÄ´ó¡¡
д×Öĸ£¬ÕâÒ»´Î³ÌÐò¾Í²»»á±»Ö´ÐС££©²¢ÇÒÇë¼ÇסÎÒÃÇÔÚÕâÀïËù¼ûµ½µÄ·½·¨Ãû£¨ÀýÈç¶ÁºÍÓë·½·¨£©ÕæÕýµØ´Ó¡¡
Ò»¸ö¿ÉÒÔ±»ÓÃÀ´ÔÚ¶ÔÏóÖе÷ÓÃÏà¹Ø·½·¨µÄ·½·¨¶ÔÏóÖвúÉú¡£¡¡¡¡
ͨÓ÷½·¨Áбí°üº¬Á˲»Ïà¹ØµÄʼþ»òÕßÊôÐÔ£¬ÀýÈç¡¡croak£¨£©¡£ÁбíÖÐËùÓеķ½·¨¶¼ÊÇÎÒÃÇ¿ÉÒÔÓмƻ®µÄΪ¡¡
Bean¡¡µ÷Ó㬲¢ÇÒÓ¦ÓóÌÐò¹¹½¨¹¤¾ß¿ÉÒÔÑ¡ÔñÁгöËùÓеķ½·¨£¬µ±ÎÒÃǵ÷Ó÷½·¨Ê±£¬¼õÇáÎÒÃǵÄÈÎÎñ¡£¡¡¡¡
×îºó£¬ÎÒÃÇ¿ÉÒÔ¿´µ½Ê¼þÔÚ½ÓÊÕÆ÷ÖÐÍêÈ«µØ·ÖÎöÑо¿ËüµÄ·½·¨¡¢Ôö¼ÓºÍ¼õÉÙ½ÓÊÕÆ÷µÄ·½·¨¡£»ù±¾ÉÏ£¬Ò»µ©ÎÒ¡¡
ÃÇÓµÓÐBeanInfo¡¡£¬ÎÒÃǾͿÉÒÔÕÒ³ö¶ÔBean¡¡À´ËµÈκÎÖØÒªµÄÊÂÎï¡£ÎÒÃÇͬÑù¿ÉÒÔΪBean¡¡µ÷Ó÷½·¨£¬¼´Ê¹ÎÒÃÇ¡¡
³ýÁ˶ÔÏóÍâûÓÐÈκÎÆäËüµÄÐÅÏ¢£¨´ËÍ⣬ÕâÒ²ÊÇÓ³ÏóµÄÌص㣩¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡462¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡464¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
13¡£18¡£3¡¡Ò»¸ö¸ü¸´Ôӵġ¡Bean¡¡¡¡¡¡
½ÓϵijÌÐòÀý×ÓÉÔ΢¸´ÔÓһЩ£¬¾¡¹ÜÕâûÓÐʲô¼ÛÖµ¡£Õâ¸ö³ÌÐòÊÇÒ»ÕŲ»ÂÛÊó±êºÎʱÒƶ¯¶¼Î§ÈÆËü»Ò»¸öС¡¡
Ô²µÄ¡¡»¡£µ±ÎÒÃÇ°´ÏÂÊó±ê¼¡¡¡¡±£¡¡¡¡ÚÆÁÄ»ÖÐÑëÏÔʾһ¸ö×Ö¡°Âang£¡¡¡¡±£¬²¢ÇÒÒ»¸ö¶¯×÷½ÓÊÕÆ÷±»¼¤»î¡£»²¼¡£µ±¡¡
°´ÏÂÊó±ê¼üʱ£¬ÎÒÃÇ¿ÉÒԸıäµÄÊôÐÔÊÇÔ²µÄ´óС£¬³ý´ËÖ®Í⻹Óб»ÏÔʾÎÄ×ÖµÄÉ«²Ê£¬´óС£¬ÄÚÈÝ¡£BangBean¡¡
ͬÑùÓµÓÐËü×Ô¼ºµÄaddActionListener£¨£©ºÍ¡¡removeActionListener£¨£©·½·¨£¬Òò´ËÎÒÃÇ¿ÉÒÔ¸½ÉÏ×Ô¼ºµÄµ±Óû§¡¡
µ¥»÷Ô