Javaは汎用型をメソッドに定義します.
1372 ワード
//汎用クラス定義の汎用型は、クラス全体で有効です.方法で使われると、
//では、汎用クラスのオブジェクトが操作する具体的なタイプを明確にすると、操作するタイプはすべて固定されます.
//
//異なる方法で異なるタイプを操作できるようにし、タイプはまだ確定していません.
//では、汎用型をメソッドに定義できます.
/*
特別な点:
静的メソッドはクラスで定義された汎用型にアクセスできません.
静的メソッド操作の適用データ型が不確定である場合、汎用型をメソッドに定義できます.
*/
——『毕向東25日』より
//では、汎用クラスのオブジェクトが操作する具体的なタイプを明確にすると、操作するタイプはすべて固定されます.
//
//異なる方法で異なるタイプを操作できるようにし、タイプはまだ確定していません.
//では、汎用型をメソッドに定義できます.
/*
特別な点:
静的メソッドはクラスで定義された汎用型にアクセスできません.
静的メソッド操作の適用データ型が不確定である場合、汎用型をメソッドに定義できます.
*/
class Demo<T>
{
public void show(T t)
{
System.out.println("show:"+t);
}
public <Q> void print(Q q)
{
System.out.println("print:"+q);
}
public static <W> void method(W t)
{
System.out.println("method:"+t);
}
}
class GenericDemo4
{
public static void main(String[] args)
{
Demo <String> d = new Demo<String>();
d.show("haha");
//d.show(4);
d.print(5);
d.print("hehe");
Demo.method("hahahahha");
/*
Demo d = new Demo();
d.show("haha");
d.show(new Integer(4));
d.print("heihei");
*/
/*
Demo<Integer> d = new Demo<Integer>();
d.show(new Integer(4));
d.print("hah");
Demo<String> d1 = new Demo<String>();
d1.print("haha");
d1.show(5);
*/
}
}
class Demo<T>
{
public void show(T t)
{
System.out.println("show:"+t);
}
public void print(T t)
{
System.out.println("show:"+t);
}
}
——『毕向東25日』より