在部落格堂看到了一篇關於C#2.0範性的小測驗(http://blog.joycode.com/ninputer/archive/2005/11/02/66256.aspx),考慮到JDK 5.0也引進了範性,特意在JDK 5.0做了相應的測試。
Quiz1:
判斷以下代碼是否有錯,如果有錯,說出錯誤類型,如果無錯,說出輸出結果。
public class GenericQuiz1
{
public static void main(String[] args)
{
A<Integer> a = new A<Integer>();
a.internalCall(2005);
}
}
class A<T>
{
void internalCall(T p)
{
test(p);
}
void test(T p)
{
System.out.println("use T");
}
void test(Integer p)
{
System.out.println("use Integer");
}
}
Quiz2:
判斷以下代碼是否有錯,如果有錯,說出錯誤類型,如果無錯,說出輸出結果。
public class GenericQuiz1
{
public static void main(String[] args)
{
A<Integer> a = new A<Integer>();
a.test(2005);
}
}
class A<T>
{
void test(T p)
{
System.out.println("use T");
}
void test(int p)
{
System.out.println("use int");
}
}
Quiz3:
判斷以下代碼是否有錯,如果有錯,說出錯誤類型,如果無錯,說出輸出結果。
public class GenericQuiz1
{
public static void main(String[] args)
{
A<Integer> a = new A<Integer>();
a.test(2005);
}
}
class A<T>
{
void test(T p)
{
System.out.println("use T");
}
void test(Integer p)
{
System.out.println("use Integer");
}
}
Quiz4:
判斷以下代碼是否有錯,如果有錯,說出錯誤類型,如果無錯,說出輸出結果。
public class GenericQuiz1
{
public static void main(String[] args)
{
A<Integer> a = new A<Integer>();
a.test(2005);
}
}
class A<T>
{
void test(T p)
{
System.out.println("use T");
}
<U> void test(U p)
{
System.out.println("use U");
}
}