JAVA基础-泛型
        【摘要】 泛型产生背景参考链接依赖Java特性:Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常. 对于集合类,如果不使用泛型,那么什么类型的对象都能存入。在取出时,因为不知道对象类型,向下转型时很有可能报错。定义泛型类/*    1:把泛型定义在类上    2:类型变量定义在类上,方法中也可以使用 */public class Obje...
    
    
    
    产生背景
依赖Java特性:
Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常.
对于集合类,如果不使用泛型,那么什么类型的对象都能存入。
在取出时,因为不知道对象类型,向下转型时很有可能报错。
定义
泛型类
/*
    1:把泛型定义在类上
    2:类型变量定义在类上,方法中也可以使用
 */
public class ObjectTool<T> {
private T obj;
public T getObj() {
return obj;
    }
public void setObj(T obj) {
this.obj = obj;
    }
}
public static void main(String[] args) {
        //创建对象并指定元素类型
        ObjectTool<String> tool = new ObjectTool<>();
        tool.setObj(new String("钟福成"));
        String s = tool.getObj();
        System.out.println(s);
        //创建对象并指定元素类型
        ObjectTool<Integer> objectTool = new ObjectTool<>();
        /**
         * 如果我在这个对象里传入的是String类型的,它在编译时期就通过不了了.
         */
        objectTool.setObj(10);
        int i = objectTool.getObj();
        System.out.println(i);
    }
泛型方法
使用背景
仅仅某个方法需要泛型使用,而不需要整个类上定义泛型。外界仅仅是关心该方法,不关心其他的属性。
  //定义泛型方法..
public <T> void show(T t) {
        System.out.println(t);
    }
public static void main(String[] args) {
        //创建对象
        ObjectTool tool = new ObjectTool();
        //调用方法,传入的参数是什么类型,返回值就是什么类型
        tool.show("hello");
        tool.show(12);
        tool.show(12.5);
    }
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)