Convert Anonymous to Inner Refactoring  

 

ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô Convert Anonymous to Inner  ¸®ÆÑÅ丵 »ó¿¡¼­ Æ÷°ýÀûÀΠoverview¿Í  how ÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼­ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.

°³¿ä


Convert Anonymous to Inner ¸®ÆÑÅ丵Àº À͸íÀÇ Å¬·¡½º¸¦ À̸§ÀÖ´Â ³»ºÎÀÇ °ÍÀ¸·Î ¹Ù²Ù±â À§ÇØ »ç¿ëµË´Ï´Ù.   ¸¸ÀÏ À͸íÀÇ Å¬·¡½º°¡ ¿ÜºÎ ¸Þ¼Òµå·ÎºÎÅÍÀÇ ¾î¶² ·ÎÄà º¯¼ö·Î »ç¿ëÇϰí, »ý¼ºµÈ ³»ºÎÀÇ Å¬·¡½ºÀÇ »ý¼ºÀÚ¿¡¼­ ¸Å°³ º¯¼ö·Î¼­ °Ç³×Áö´Â °ÍÀ» Á¦¾ÈÇÑ´Ù¸é, IDEA´Â ÀÚµ¿ÀûÀ¸·Î °¨ÁöÇÕ´Ï´Ù.  ±× °á°ú, »õ·Î¿î À̸§ÀÖ´Â ³»ºÎ Ŭ·¡½º°¡ ¼±¾ðµÇ°í À͸íÀÇ Å¬·¡½º ÄÚµå´Â ³»ºÎ Ŭ·¡½º ÀνºÅϽº »ý¼ºÀ¸·Î ±³Ã¼µË´Ï´Ù.

¿¹¸¦ µé¸é, ¿ì¸®´Â ¸®ÆÑÅ丵 Àü¿¡ ´ÙÀ½ Äڵ带 °¡Áý´Ï´Ù:

 
    public class OuterClass {
        public AnInterface foo() {
            final int local = 1;
            return new AnInterface() {
                public int function() { return local; }
            };
        }
    }


ÀÎÅÍÆäÀ̽º AnInterface°¡ ¼±¾ðµÈ °÷:

 
    public interface AnInterface {
        int function();
    }


Convert Anonymous to Inner ¸®ÆÑÅ丵 ÀÌÈÄ ÄÚµå´Â ´ÙÀ½°ú °°ÀÌ º¸ÀÏ °ÍÀÔ´Ï´Ù:

 

    public class OuterClass {
        public AnInterface foo() {
            final int local = 1;
            return new TheClass(local);
        }
 
        ...//some code here
 
        private class TheClass implements AnInterface {
            private final int local;
 
            public TheClass(int local) {
                this.local = local;
            }
 
            public int function() {
                return local;
            }
        }
    }



Converting Anonymous to Inner  


 1.   À͸íÀÇ Å¬·¡½º¸¦ ³»ºÎÀÇ °ÍÀ¸·Î ¹Ù²Ù±â À§ÇØ, ¸®ÆÑÅäµÈ ³»ºÎ Ŭ·¡½º ³»ºÎ ¾î´À °÷¿¡ ij·µÀ» ¹èÄ¡ÇϽʽÿÀ. ±×¸®°í ÁÖ ¸Þ´º¿¡¼­ ¶Ç´Â ¿¡µðÅÍ¿¡¼­ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼­ Refactor Convert Anonymous to Inner...  Ç׸ñÀ» Ŭ¸¯ÇÕ´Ï´Ù.   ´ÙÀ½ÀÇ Convert Anonymous to Inner°¡ ³ªÅ¸³³´Ï´Ù:



 2.   Class name ÅؽºÆ® Çʵ忡¼­, »õ·Î¿î Ŭ·¡½ºÀÇ À̸§À» ÁöÁ¤ÇϽʽÿÀ.

 3.   Parameters  ¸ñ·Ï¿¡¼­

  ´ç½ÅÀÌ ³Ñ°ÜÁö´Â Ưº°ÇÑ º¯¼ö¸¦ Á¦¿ÜÇÒ ¼ö ÀÖ´Â »óÀÀÇÑ Ã¼Å©¹Ú½º¸¦ ¼±ÅÃ ÇØÁ¦ÇÏ´Â °Í¿¡ ÀÇÇØ »ý¼ºÀÚ ¸Å°³ º¯¼ö·Î¼­ ³Ñ°ÜÁö´Â º¯¼ö°¡ ÁÖ¾îÁý´Ï´Ù; ¸¸ÀÏ ¸Å°³ º¯¼ö°¡ ºÒ°¡´ÉÇϸé, »óÀÀÇϴ ŸÀÔÀÇ Çʵå´Â ³»ºÎ Ŭ·¡½º¿¡¼­ »ý¼ºµÉ °ÍÀ̰í, ÃʱⰪ°ú ÇÔ²² »ý¼ºÀÚ¿¡¼­ Ãʱ⠻óÅ·Πº¯ÇÒ °Í ÀÔ´Ï´Ù. ±×·¡¼­  ´ç½ÅÀÌ ÀûÀýÇÑ °ªÀ¸·Î À̴ϼȶóÀÌÀú¸¦ ¼öµ¿À¸·Î ÀÔ·ÂÇØ¾ß¸¸ ÇÒ °ÍÀÔ´Ï´Ù.

  ¿øÇÏ´Â ¸Å°³ º¯¼ö´Â »óÀÀÇÏ´Â ¸Å°³ º¯¼ö ¶óÀÎÀ» ´õºí Ŭ¸¯Çϰí, »õ·Î¿î À̸§À» ÀÔ·ÂÇÏ¿© À̸§ÀÌ ¹Ù²ãÁú ¼ö ÀÖ½À´Ï´Ù.


 4.   »ý¼ºÀÚ¿¡ ³Ñ¾î°¡´Â ¸Å°³ º¯¼öÀÇ ¼ø¼­¸¦ ÁöÁ¤Çϱâ À§ÇØ Move up °ú Move down À» »ç¿ëÇÕ´Ï´Ù.

 5.   OK ¸¦ Ŭ¸¯ÇϽʽÿÀ.  »õ·Î¿î À̸§ÀÖ´Â ³»ºÎ Ŭ·¡½º°¡ »ý¼ºµÉ °ÍÀÔ´Ï´Ù. ±×¸®°í À͸íÀÇ Å¬·¡½º°¡ ÀÖ´Â ÄÚµå ÇÁ·¡±×¸ÕÆ®´Â ³»ºÎ Ŭ·¡½º ÀνºÅϽº »ý¼ºÀ¸·Î ±³Ã¼µÉ °ÍÀÌ°í ¶ÇÇÑ À̸§ÀÖ´Â ³»ºÎ Ŭ·¡½ºÀÇ ¼±¾ðÀº °á°ú Äڵ忡 Ãß°¡µÉ °ÍÀÔ´Ï´Ù.