ÀÌ ¼½¼ÇÀº ´ç½Å¿¡°Ô Inline
Variable ¸®ÆÑÅ丵 »ó¿¡¼ Æ÷°ýÀûÀÎ overview¿Í how ÀÌ ¸®ÆÑÅ丵ÀÌ IntelliJ IDEA¿¡¼ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.
ÀϹÝÀûÀ¸·Î ¸»ÇÏÀÚ¸é, Inline
Variable ¸®ÆÑÅ丵Àº Introduce
Variable ¿¡ ¹Ý´ëÀÔ´Ï´Ù. Inline Variable ¸®ÆÑÅ丵À» ¼öÇàÇϸé¼, IDEA´Â º¯¼ö »ç¿ëÀ» ±× À̴ϼȶóÀÌÀú·Î ±³Ã¼ÇÒ °ÍÀÔ´Ï´Ù.
¿¹¸¦ µé¸é, ¿ì¸®´Â ´ÙÀ½ Äڵ带 °¡Áý´Ï´Ù:
public class AClass {
public int MethodA() {
int aVariable = 1;
//some code here
return aVariable;
}
}
±×¸®°í ´ç½ÅÀº aVariable °¡ »ç½Ç Áߺ¹À̶ó°í ¾Ë¾Ò½À´Ï´Ù. ¸®ÆÑÅ丵ÀÌ Àû¿ëµÇ°í ³ ÈÄ¿¡ À̰ÍÀº ÄÚµåÀÔ´Ï´Ù:
public class AClass {
public int methodA() {
//some code here
return 1;
}
}
º¯¼ö¸¦ inline Çϱâ À§ÇÏ¿©:
1. Ÿ°Ù º¯¼ö ¼±¾ð ¶Ç´Â »ç¿ë¿¡ ij·µÀ» ¹èÄ¡Çϰí, ÁÖ ¸Þ´º¿¡¼ ¶Ç´Â ¿¡µðÅÍ¿¡¼ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼ Refactor | Inline... À» Ŭ¸¯Çϰųª OR Ctrl + Alt +
N À» ´©¸¨´Ï´Ù. ±× ´ÙÀ½ º¯¼öÀÇ ¸ðµç ¹ß°ßµÈ ¹ß»ýÀº °Á¶µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í ´ç½ÅÀº ´ÙÀ½ ´ÙÀ̾ó·Î±× À©µµ¿ìÀ» º¼ °ÍÀÔ´Ï´Ù:


|
ÀϺΠÁ¦ÇÑÀÌ ÀÌ ¸®ÆÑÅ丵À» »ç¿ëÇϱâ À§ÇØ ÀÖ½À´Ï´Ù:
|
Ÿ°Ù º¯¼ö´Â ±× ¼±¾ð¿¡¼ ÃʱâȵǾî¾ß¸¸ ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ´ç½Å¿¡°Ô ´ÙÀ½ÀÇ ¿¡·¯ ¸Þ½ÃÁö°¡ ÇÁ·ÒÇÁÆ® µÉ °ÍÀÔ´Ï´Ù:

¸¸ÀÏ Å¸°Ù º¯¼ö°¡ ¾îµð¿¡¼±°¡ º¯°æµÇ¸é º¯°æ Àü¿¡ ¹ß»ýÀº ¸®ÆÑÅ丵¿¡ ÀÇÇØ ¹Ù²ð °ÍÀÔ´Ï´Ù. ¸¸ÀÏ º¯°æ¿¡ ¾Õ¼ Ÿ°Ù º¯¼öÀÇ ¾î¶² ¹ß»ýµµ ¾øÀ¸¸é, ´ç½Å¿¡°Ô ´ÙÀ½ÀÇ ¿¡·¯ ¸Þ½ÃÁö°¡ ÇÁ·ÒÇÁÆ® µÉ °ÍÀÔ´Ï´Ù:

2. OK¸¦ Ŭ¸¯ÇϽʽÿÀ. ±×¸®¸é ¿øÇÏ´Â º¯¼ö´Â inline µÉ °ÍÀÔ´Ï´Ù.
|
´ç½ÅÀº Inline Variable ¸®ÆÑÅ丵 ÀÌÈÄ °¡´ÉÇÑ ºÎÀÛ¿ëÀ» ¾Ë°í ÀÖ¾î¾ß¸¸ ÇÕ´Ï´Ù. IDEAÀº ±× À̴ϼȶóÀÌÀú¸¦ À§ÇÑ º¯¼ö¸¦ ´ëüÇÏ¸é¼ ´ç½ÅÀ» º¸Á¶ÇÒ °Í ÀÔ´Ï´Ù ±×·¯³ª ÀÌ µ¿ÀÛ °á°ú°¡ Á¤È®ÇÑÁö ¾î¶²Áö´Â üũÇÏÁö ¾ÊÀ» °Í ÀÔ´Ï´Ù.
±×¸®°í ´ç½ÅÀÌ ¸®ÆÑÅ丵À» Àû¿ëÇÒ ¶§ ´ç½ÅÀº º¯°æÀÌ ´ç½ÅÀÇ Äڵ带 ¿¡·¯·Î ä¿ìÁö ¾ÊÀ» °ÍÀ» È®½ÅÇØ¾ß¸¸ ÇÕ´Ï´Ù
¿¹¸¦ µé¸é, ´ç½ÅÀº ´ÙÀ½ÀÇ Äڵ带 °¡Áý´Ï´Ù:
public class AClass {
int aField = 1;
public int methodA() {
int aVariable = methodB();
foo(aVariable);
return aVariable;
}
private int methodB() {
return aField++;
}
}
¸¸ÀÏ ´ç½ÅÀÌ aVariable ¸¦ À§ÇÑ Inline Variable ¸®ÆÑÅ丵À» Àû¿ëÇÑ´Ù¸é, ¸Þ¼Òµå foo ¿¡ ÁÖ¾îÁö°í methodA ¿¡ ÀÇÇØ ¸®ÅÏµÈ °ªÀº »óÀÌÇÒ °ÍÀÌ°í ´ç½ÅÀÌ ±â´ëÇß´ø °ÍÀÌ ¾Æ´Ò °Í ÀÔ´Ï´Ù. µû¶ó¼, ´ç½ÅÀº ¸®ÆÑÅ丵 »ç¿ëÀ» ¸Å¿ì Á¶½É½º·¯¿ï Çʿ䰡 ÀÖ°í ÇÊ¿äÇÏ´Ù¸é ÇÊ¿äÇÑ Á¤Á¤À» ¼öµ¿À¸·Î ¸¸µé Çʿ䰡 ÀÖÀ» °ÍÀÔ´Ï´Ù.
|
|