¤¿¤Þ¤Ë¤Ã¤¡£ / 2006-04-10
| Æü | ·î | ²Ð | ¿å | ÌÚ | ¶â | ÅÚ |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
2006-04-10 Mon
¢£ Generics¤Îæ« ºÆ¤Ó
Java Generics¤ÎÁí¾Î·¿¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¤Ë¤Î¤ß²ò¼á¤µ¤ì¡¢¥Ð¥¤¥È¥³¡¼¥É¤Ë¤ÏÁí¾Î·¿¤Ç¤¢¤Ã¤¿¤È¤¤¤¦º¯Àפ¹¤é»Ä¤ê¤Þ¤»¤ó¡£
¤¨¡¼¡¥¤½¤¦¤¹¤ë¤È¡¤Class#getGenericInterfaces ¤È¤« Class#getGnericSuperclass ¤È¤« Method#getGenericParameterTypes ¤ä¤é Method#getGenericReturnType ¤Ï¤É¤³¤ò¤É¤¦¸«¤Æ¡¤²¿¤òÊÖ¤·¤Æ¤¤¤ë¤ó¤À!?
¼ÂºÝ¤Ë¤Ï Signature °À¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹¡¥²¾ÁÛ¥Þ¥·¥ó¤¬ÃΤé¤Ê¤¤Â°À¤¬¥¯¥é¥¹¥Õ¥¡¥¤¥ëÃæ¤Ë¸½¤ì¤¿¾ì¹ç¡¤¤½¤Î°À¤Ï̵»ë¤¹¤Ù¤·¤È JVM ¤Î»ÅÍͤˤ¢¤ë¤Î¤Ç¡¤1.5 ¤Ç¥³¥ó¥Ñ¥¤¥ë¤·¤¿¥¯¥é¥¹¤â 1.4 ¤Çư¤¯¤ï¤±¤Ç¤¹(¥¯¥é¥¹¥Õ¥¡¥¤¥ë¤Î major version ¤ò 48 ¤Ë½¤Àµ¤¹¤ëɬÍפ¬¤¢¤ë¤±¤É)¡¥
¤½¤ì¤Ï¤µ¤ÆÃÖ¤¡¤°Ê²¼¤Î¥³¡¼¥É¤Çº¤¤Ã¤Æ¤¤¤ë¡¥
$ cat HogeHoge.java
public class HogeHoge<T>{
public static void main(String[] args){
HogeHoge<String>[] strings = new HogeHoge<String>[10];
}
}
$ javac HogeHoge.java
HogeHoge.java:3: ÈÆÍÑÇÛÎó¤òºîÀ®¤·¤Þ¤¹¡£
HogeHoge<String>[] strings = new HogeHoge<String>[10];
^
¥¨¥é¡¼ 1 ¸Ä
2¤Ä¤ÎÇÛÎó¤ò·Ò¤²¤Æ1¤Ä¤ÎÇÛÎó¤Ë¤¹¤ë ¤Ë¤è¤ë¤È java.lang.reflect.Array ¤ò»È¤¦¤³¤È¤Ç¡¤¤³¤ÎÌäÂê¤ò²óÈò¤Ç¤¤ë¤é¤·¤¤¡¥
¤±¤É¡¤¤½¤ì¤Ç¤â¡¤
$ cat HogeHoge.java
import java.lang.reflect.Array;
public class HogeHoge<T>{
public static void main(String[] args){
HogeHoge<String> dummy = new HogeHoge<String>();
HogeHoge<String>[] strings = (HogeHoge<String>[])Array.newInstance(dummy.getClass(), 10);
}
}
$ javac -Xlint:unchecked HogeHoge.java
HogeHoge.java:5: ·Ù¹ð: [unchecked] ̵¸¡ºº¥¥ã¥¹¥È¤Ç¤¹
¸¡½ÐÃÍ : java.lang.Object
´üÂÔÃÍ : HogeHoge<java.lang.String>[]
HogeHoge<String>[] strings = (HogeHoge<String>[])Array.newInstance(dummy.getClass(), 10);
^
·Ù¹ð 1 ¸Ä
¤³¤³¤Î·Ù¹ð¤ò̵»ë¤¹¤ë¤¯¤é¤¤¤Ê¤é¡¤ºÇ½é¤Ã¤«¤é
HogeHoge[] strings = new HogeHoge();
¤È¤¹¤ë¤ï¤Ê¡¥
¤É¤¦¤¤¤¦¤È¤¤Ë Generics ¤ò»È¤¦¤Ù¤¤Ç¡¤¤É¤¦¤¤¤¦¤È¤¤Ë»È¤¦¤Ù¤¤Ç¤Ê¤¤¤Î¤«¤¬¤è¤¯¤ï¤«¤é¤ó¡¥
¢£ mantis
¥Ð¥°¥È¥é¥Ã¥¥ó¥°¥·¥¹¥Æ¥à¤ÎÃæ¤Ç¤ÏÊØÍø¤½¤¦¡¥
º£¤Þ¤Ç¤³¤¦¤¤¤¦¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤Ê¤«¤Ã¤¿¤Î¤Ç¡¤»È¤Ã¤Æ¤ß¤è¤¦¤«¡¤¤È¡¥
¢£ ¥¥ê¥¹¥ÈÅÁÀâ¤Î¼¤«¤éÀ¸¤Þ¤ì¤¿¡Ö¥É¥é¥¥å¥é¥¢¥¤¥¹¡×
¤Ø¤§¡¥¿©¤Ù¤Æ¤ß¤¿¤¤¡¥
¢£ ¤á¤ó¤½¡¼¤ì¡¢¡È²ÆìŪ·ã¿ÉÃæÆÇÀ¤³¦¡É¤Ø
¤Á¤ç¤Ã¤È¶½Ì£¤¬¤¢¤ë¡¥
¢£ ¤¢¤Ê¤¿¤â±ØÄ¹¤Ë¡ª¡¡Ë̾òÅ´Æ»¤¬±ØÄ¹¸øÊçÃæ
±Ø¼Ë¤Î¤Ê¤¤±Ø¤â¤¢¤ë¤Î¤Ç¡¢ÆÃ¤Ë½Ð¶Ð¤ÎµÁ̳¤Ï¤Ê¤¯¡¢»Å»ö¤ò¤·¤Æ¤¤¤ë¿Í¤Ê¤éÅÚÆü¤äµÙÆü¤òÍøÍѤ¹¤ë¤Ê¤É¡¢¸Ä¿Í¤Î¶õ¤»þ´Ö¤ò»È¤¨¤Ð¤¤¤¤¤½¤¦¤À¡£
¢£ ºâÉÛ¤ò½¦¤Ã¤¿½÷À¡¢¼ÕÎé¶â¤ò¶¯Íפ·¤ÆÂáÊᤵ¤ì¤ë
Çϼ¯¡¥
¢£ ½õ¤±¤Æ²¼¤µ¤¤¡ª¥Þ¥Ã¥¯¤¬ÆÍÁ³Çúȯ¤·¤Þ¤·¤¿¡ª
¤³¤ï¡¥²È¤Ë¿·¤·¤¤¥Þ¥·¥ó¤¬Íߤ·¤¤¤Ê¤¡¡¥¤È¤¤¤¦º£Æü¤³¤Îº¢¡¥
¢£ ¤ª¤ì¤âipod¤Ä¤¯¤Ã¤¿¤è¡¼
via swk's log
iPod cell£÷£÷£÷£÷£÷
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
ºÇ½ª¹¹¿·»þ´Ö: 2008-09-04 19:19





