集合框架-泛型-泛型方法

 1 package cn.itcast.p4.generic.define.demo;
 2 
 3 public class GenericDemo4 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         Tool<String> tool = new Tool<String>();
 8         
 9         tool.show("abc");
10         tool.print("hahah");
11         
12 //        tool.show(new Integer(4));//类型检查没过去
13         Tool.method("haha");
14         tool.method(new Integer(6));
15     }
16 
17 }
GenericDefineDemo4
 1 package cn.itcast.p4.generic.define.demo;
 2 //定义一个工具类操作所有对象
 3 /*
 4  * public class Tool { private Object object;
 5  * 
 6  * public Object getObject() { return object; }
 7  * 
 8  * public void setObject(Object object) { this.object = object; }
 9  * 
10  * }
11  */
12 //在jdk1.5后,使用泛型来接收类中要操作的引用数据类型。
13 //泛型类。什么时候用?当类中的操作的引用数据类型不确定的时候,就使用泛型来表示。
14 public class Tool<QQ>{
15     private QQ q;
16 
17     public QQ getObject() {
18         return q;
19     }
20 
21     public void setObject(QQ object) {
22         this.q = object;
23     }
24     /**
25      * 将泛型定义在方法上
26      * @param <W>
27      * @param str
28      */
29     public <W> void show(/*Object*/W str) {//不明确类型用Object其实是一种具体类型,只不过他是父类所以可以多态方式接收
30         System.out.println("show:"+str.toString());
31     }
32     public void print(QQ str) {//一旦使用了泛型,对象不确定,你不能使用对象的具体方法。无论传什么都具备Object的方法
33         System.out.println("print:"+str);
34     }
35     /**
36      * 当方法静态时,不能访问类上定义的泛型。如果静态方法使用泛型,
37      * 只能将泛型定义在方法上。(返回值前修饰符后)
38      * @param obj
39      */
40 //    public static void method(QQ obj) {//加了static 静态是不需要对象的,泛型需要对象明确,就不知道QQ怎么用
41 //        System.out.println("method:"+obj);
42 //    }
43     public static <Y> void method(Y obj) {
44         System.out.println("method:"+obj);
45     }
46 }
Tool

 

posted @ 2021-10-24 15:21  doremi429  阅读(29)  评论(0编辑  收藏  举报