有如下文件:
package javafive.generic;public class GenericClassTest <TYPE1,TYPE2>
{
public GenericClassTest(){} public void testType(TYPE1 parm){
log(parm);
} public void log(TYPE1 parm){
System.out.println("LOG:" + parm);
} public void log(Integer parm){
System.out.println("LOG 2 :" + parm);
} public static void main(String [] args){
GenericClassTest gentest = new GenericClassTest <String,Integer> (); //see 1
gentest.testType("String");
GenericClassTest genIntTest = new GenericClassTest <Integer,Integer> ();//see 2
genIntTest.testType("String"); //question 1
genIntTest.testType(new Integer(2));
genIntTest.log(new Integer(2));
}
}在see 1处<String,Integer>,是不是就是代表类GenericClassTest <TYPE1,TYPE2>中所有TYPE1类型就是String类型,YPTE2类型就是Integer类型?
如果是的话,在//question 1处为什么能执行通过的呢?
package javafive.generic;public class GenericClassTest <TYPE1,TYPE2>
{
public GenericClassTest(){} public void testType(TYPE1 parm){
log(parm);
} public void log(TYPE1 parm){
System.out.println("LOG:" + parm);
} public void log(Integer parm){
System.out.println("LOG 2 :" + parm);
} public static void main(String [] args){
GenericClassTest gentest = new GenericClassTest <String,Integer> (); //see 1
gentest.testType("String");
GenericClassTest genIntTest = new GenericClassTest <Integer,Integer> ();//see 2
genIntTest.testType("String"); //question 1
genIntTest.testType(new Integer(2));
genIntTest.log(new Integer(2));
}
}在see 1处<String,Integer>,是不是就是代表类GenericClassTest <TYPE1,TYPE2>中所有TYPE1类型就是String类型,YPTE2类型就是Integer类型?
如果是的话,在//question 1处为什么能执行通过的呢?
GenericClassTest<Integer,Integer> genIntTest = new GenericClassTest <Integer,Integer> ();//这样写就编译不过了