Á°¤ÎÆü / ¼¡¤ÎÆü / ºÇ¿· / 2006-04

¤¿¤Þ¤Ë¤Ã¤­¡£ / 2006-04-10

2006-04
Æü·î²Ð¿åÌÚ¶âÅÚ
1
2345678
9101112131415
16171819202122
23242526272829
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 ¤ò»È¤¦¤Ù¤­¤Ç¡¤¤É¤¦¤¤¤¦¤È¤­¤Ë»È¤¦¤Ù¤­¤Ç¤Ê¤¤¤Î¤«¤¬¤è¤¯¤ï¤«¤é¤ó¡¥

Category: [Java]

¢£ mantis

¥Ð¥°¥È¥é¥Ã¥­¥ó¥°¥·¥¹¥Æ¥à¤ÎÃæ¤Ç¤ÏÊØÍø¤½¤¦¡¥
º£¤Þ¤Ç¤³¤¦¤¤¤¦¥·¥¹¥Æ¥à¤ò»È¤Ã¤Æ¤Ê¤«¤Ã¤¿¤Î¤Ç¡¤»È¤Ã¤Æ¤ß¤è¤¦¤«¡¤¤È¡¥

Category: [³«È¯]

¢£ ¤¢¤Ê¤¿¤â±ØÄ¹¤Ë¡ª¡¡Ë̾òÅ´Æ»¤¬±ØÄ¹¸øÊçÃæ

±Ø¼Ë¤Î¤Ê¤¤±Ø¤â¤¢¤ë¤Î¤Ç¡¢ÆÃ¤Ë½Ð¶Ð¤ÎµÁ̳¤Ï¤Ê¤¯¡¢»Å»ö¤ò¤·¤Æ¤¤¤ë¿Í¤Ê¤éÅÚÆü¤äµÙÆü¤òÍøÍѤ¹¤ë¤Ê¤É¡¢¸Ä¿Í¤Î¶õ¤­»þ´Ö¤ò»È¤¨¤Ð¤¤¤¤¤½¤¦¤À¡£

Category: [misc]

¢£ ½õ¤±¤Æ²¼¤µ¤¤¡ª¥Þ¥Ã¥¯¤¬ÆÍÁ³Çúȯ¤·¤Þ¤·¤¿¡ª

¤³¤ï¡¥²È¤Ë¿·¤·¤¤¥Þ¥·¥ó¤¬Íߤ·¤¤¤Ê¤¡¡¥¤È¤¤¤¦º£Æü¤³¤Îº¢¡¥

Category: [2ch][Mac]

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

Á°¤ÎÆü / ¼¡¤ÎÆü / ºÇ¿· / 2006-04

¥«¥Æ¥´¥ê