javaÖеÄinstanceof¹Ø¼ü×Ö¡¾×ªÌù¡¿
¡¡instanceofÊÇJavaµÄÒ»¸ö¶þÔª²Ù×÷·û£¬ºÍ==£¬>£¬<ÊÇͬһÀà¶«¶«¡£ÓÉÓÚËüÊÇÓÉ×Öĸ×é³ÉµÄ£¬ËùÒÔÒ²ÊÇJavaµÄ±£Áô¹Ø¼ü×Ö¡£ËüµÄ×÷ÓÃÊDzâÊÔËü×ó±ßµÄ¶ÔÏóÊÇ·ñÊÇËüÓұߵÄÀàµÄʵÀý£¬·µ»ØbooleanÀàÐ͵ÄÊý¾Ý¡£¾Ù¸öÀý×Ó£º
¡¡¡¡String s = "I AM an Object!";
¡¡¡¡boolean isObject = s instanceof Object;
¡¡¡¡ÎÒÃÇÉùÃ÷ÁËÒ»¸öString¶ÔÏóÒýÓã¬Ö¸ÏòÒ»¸öString¶ÔÏó£¬È»ºóÓÃinstancofÀ´²âÊÔËüËùÖ¸ÏòµÄ¶ÔÏóÊÇ·ñÊÇObjectÀàµÄÒ»¸öʵÀý£¬ÏÔÈ»£¬ÕâÊÇÕæµÄ£¬ËùÒÔ·µ»Øtrue£¬Ò²¾ÍÊÇisObjectµÄֵΪTrue¡£
¡¡¡¡instanceofÓÐһЩÓô¦¡£±ÈÈçÎÒÃÇдÁËÒ»¸ö´¦ÀíÕ˵¥µÄϵͳ£¬ÆäÖÐÓÐÕâÑùÈý¸öÀࣺ
¡¡¡¡public class Bill {//Ê¡ÂÔϸ½Ú}
¡¡¡¡public class PhoneBill extends Bill {//Ê¡ÂÔϸ½Ú}
¡¡¡¡public class GasBill extends Bill {//Ê¡ÂÔϸ½Ú}
¡¡¡¡ÔÚ´¦Àí³ÌÐòÀïÓÐÒ»¸ö·½·¨£¬½ÓÊÜÒ»¸öBillÀàÐ͵ĶÔÏ󣬼ÆËã½ð¶î¡£¼ÙÉèÁ½ÖÖÕ˵¥¼ÆËã·½·¨²»Í¬£¬¶ø´«ÈëµÄBill¶ÔÏó¿ÉÄÜÊÇÁ½ÖÖÖеÄÈκÎÒ»ÖÖ£¬ËùÒÔÒªÓÃinstanceofÀ´Åжϣº
¡¡¡¡public double calculate(Bill bill) {
¡¡¡¡if (bill instanceof PhoneBill) {
¡¡¡¡//¼ÆËãµç»°Õ˵¥
¡¡¡¡}
¡¡¡¡if (bill instanceof GasBill) {
¡¡¡¡//¼ÆËãÈ¼ÆøÕ˵¥
¡¡¡¡}
¡¡¡¡...
¡¡¡¡}
¡¡¡¡ÕâÑù¾Í¿ÉÒÔÓÃÒ»¸ö·½·¨´¦ÀíÁ½ÖÖ×ÓÀà¡£
¡¡¡¡È»¶ø£¬ÕâÖÖ×ö·¨Í¨³£±»ÈÏΪÊÇûÓкúÃÀûÓÃÃæÏò¶ÔÏóÖеĶà̬ÐÔ¡£ÆäʵÉÏÃæµÄ¹¦ÄÜÒªÇóÓ÷½·¨ÖØÔØÍêÈ«¿ÉÒÔʵÏÖ£¬ÕâÊÇÃæÏò¶ÔÏó±ä³ÉÓ¦ÓеÄ×ö·¨£¬±ÜÃâ»Øµ½½á¹¹»¯±à³Ìģʽ¡£Ö»ÒªÌṩÁ½¸öÃû×ֺͷµ»ØÖµ¶¼Ïàͬ£¬½ÓÊܲÎÊýÀàÐͲ»Í¬µÄ·½·¨¾Í¿ÉÒÔÁË£º
¡¡¡¡public double calculate(PhoneBill bill) {
¡¡¡¡//¼ÆËãµç»°Õ˵¥
¡¡¡¡}
¡¡¡¡public double calculate(GasBill bill) {
¡¡¡¡//¼ÆËãÈ¼ÆøÕ˵¥¡¡¡¡}
¡¡¡¡ËùÒÔ£¬Ê¹ÓÃinstanceofÔÚ¾ø´ó¶àÊýÇé¿öϲ¢²»ÊÇÍÆ¼öµÄ×ö·¨£¬Ó¦µ±ºÃºÃÀûÓöà̬¡£
¡¡¡¡ÓÃinstanceof¼ì²â¶ÔÏóµÄÀàÐÍ
¡¡¡¡/** * instanceof ÓÃÓÚ¼ì²â¶ÔÏóµÄÀàÐÍ¡£
¡¡¡¡£¨1£©ÀàµÄ¶ÔÏóÓëÀà×÷instance of²Ù×÷£¬½á¹ûΪtrue *
¡¡¡¡£¨2£©×ÓÀà¶ÔÏóÓ븸Àà×÷instance of²Ù×÷£¬½á¹ûΪtrue¡£
¡¡¡¡£¨3£©ÆäËûÇé¿öÏ£¬½á¹û¶¼Îªfalse¡£
Ïà¹ØÎĵµ£º
Óà Groovy ±àд¸üÉٵĴúÂ룬Íê³É¸ü¶àµÄ¹¤×÷
¼¶±ð£º ³õ¼¶
Scott Davis , ´´Ê¼ÈË, ThirstyHead.com
2009 Äê 3 ÔÂ 09 ÈÕ
Groovy ר¼Ò Scott Davis ½«ÖØÐ¿ªÊ¼×«Ð´ ʵս Groovy ϵÁÐÎÄÕ£¬¸ÃϵÁÐÎÄÕÂÓÚ 2006 ÄêÍ£Ö¹±àд¡£×÷Ϊ¿ªÆªÎÄÕ£¬±¾ÎĽ«½éÉÜ Groovy ×î½üµÄ·¢Õ¹ÒÔ¼° Groovy µ±Ç°µÄ״̬¡£È»ºóÁ˽ⴠ......
JNI(Java+Native+Interface£¬Java±¾µØ½Ó¿Ú)¼¼Êõ´ó¼Ò¶¼²»Ä°Éú£¬Ëü¿ÉÒÔ°ïÖú½â¾öJava·ÃÎʵײãÓ²¼þµÄ¾ÖÏÞºÍÖ´ÐÐЧÂʵÄÌá¸ß¡£¹ØÓÚJNIµÄ¿ª·¢£¬´ó¶àÊý×ÊÁÏÌÖÂ۵ͼÊÇÈçºÎÓÃC/C++ÓïÑÔ¿ª·¢JNI£¬ÉõÖÁÓÚJDKÒ²ÌṩÁËÒ»¸öjavah¹¤¾ßÀ´×Ô¶¯Éú³ÉCÓïÑÔ³ÌÐò¿ò¼Ü¡£µ«ÊÇ£¬¶ÔÓÚ¹ã´óµÄDelphi³ÌÐòÔ±À´Ëµ£¬ÄѵÀ¾Í²»ÄÜÓÃ×Ô¼ºÏ²°®µÄDelphiÓëJava»¥Í¨Ïû ......
JAVAÐòÁл¯µÄÁ½ÖÖ·½Ê½
//´ó¼Ò¶¼ÖªµÀSerializableÊÇÒ»¸ömark interface,¸æËßJVMÕâ¸ö¶ÔÏó¿ÉÒÔ±»×ª»»³É¶þ½øÖÆÁ÷À´´«Êä.
//Serializable ÔÚÎÒÃÇʵÏÖÕâ¸ö½Ó¿ÚµÄʱºò,ÎÒÃÇ¿ÉÒÔʹÓÃ4¸ö˽Óз½·¨À´¿ØÖÆÐòÁл¯µÄ¹ý³Ì:
//ÎÒÃÇÀ´¿´Ò»¸öÀý×Ó:
public class FooImpl implements java.io.Serializable
{
pr ......