°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡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£¨£©·½·¨£¬Òò´ËÎÒÃÇ¿ÉÒÔ¸½ÉÏ×Ô¼ºµÄµ±Óû§¡¡
µ¥»÷ÔÚBangBean¡¡ÉÏÊ