首页 > 作文

这个Java泛型不太正经

更新时间:2023-04-04 10:36:54 阅读: 评论:0

目录
一、前言二、泛型三、泛型定义的格式:什么是引用类型?泛型的好处是: 四、泛型类五、泛型方法六、泛型接口七、类型通配符总结

一、前言

泛型在java中有很重要的地位,在实际开发中用处也很大。

二、泛型

泛型:是jdk5中引入的特性,他提供编译是类型是类型的安全检测机制,这个机制允许在编译时检测到非法的类型,它的本质是参数化类型,也就是所操作的数据类型不变指定为一个参数

将原来具体的类型参数化,然后再使用/调用的时候传入具体的参数

泛型的类型:

①:泛型类

②:泛型方法

③:泛型接口

三、泛型定义的格式:

<类型> :指定一种类型的格式,这里的类型可以看成是形参。

<类型1,类型2…>:指定多种类型的格式,多种类型之间用逗号隔开,这里的类型类型1,类型2可以看成是形参,将来具体调用的时候的参数看成是实参,这里的泛型只能是引用类型

什么是引用类型?

除了八大基本类型其他的都是引用类型,如基本类型对应的包装类

boolean –>booleanchar —>characterbyte –>byteshort –>shortint –>integerlong –>longfloat –>floatdouble –>double

泛型的好处是:

把运行得问题提前到编译时期 避免了强制转换

没指定类型默认是object类型

举个例子,当没有使用泛型时:

import java.util.hashmap;import java.util.map;import java.util.t; public class 泛型dem微信怎么打出粽子表情符号o {    public static void main(string[] args) {        //创建一个对象        map map=new hashmap();        //添加数据        map.put(1, "张三");        map.put(2, "李四");        map.put(3,"王五");        map.put(5, 6);//加了不一样的类型数据         //键的集合        t keyt=map.keyt();        //键找值        for(object key: keyt){            string value=(string)map.get(key);            system.out.println(key+":"+value);        }      }}

报了一个类型转换异常(int会自动转化成integer),integer不能转为string

exception in thread “main” java.lang.classcastexception: java.lang.integer cannot be cast to java.lang.string

此时泛型的好处就体现出来了,将运行时会出现的错误拉到了编译期间。

当然也可以在输出是采用object接收

        //键的集合        t keyt=map.keyt();        //键找值        for(object key: keyt){           object value=map.get(key);          //  string value=(string)map.get(key);            system.out.println(key+":"+value);        }

这样也可以得到想要的结果。

四、泛型类

泛型类的定义格式:

修饰符 class 类名<类型> { }

举例:

public class generic<t>{}

这里的t可以使任意标识,常见的如t、e、k、v等形式常用于表示泛型。

泛型类下

public class generic<t> {    //定义一个变量,提供get t方法    private t t;    public t gett(){        return t;  antismoking  }    public void tt(t t){        this.t=t;    }    }

测试类下

public class genericdemo {    public static void main(string[] args) {        generic<string> g1=new generic<>();        g1.tt("章三");        system.out.println(g1.gett());        system.out.println("------------------");        generic<integer> g2=new generic<>();        g2.tt(100);        system.out.println(g2.gett());    }}

运行结果

定义这个泛型类的好处就是可以在测试中输入各种你想要的类型。

五、泛型方法

定义泛型方法的格式:

修饰符 <类型> 返回值类型 方法名 (类型 类型名)

举例:

public <t> void show (t t){}

泛型方法

 public class generic {public <t> void show(t t){    system.out.println(t);}}

泛型方法测试下:

public class genericdemo {    public static void main(string[] args) {       generic g=new generic();       g.show("张三");       g.show(100);       g.show(true);   g.show(null);    }}

运行结果

泛型方法比泛型类方便许多,直接在这使用即可,可以用个中类型的参数

六、泛型接口

格式:修饰符 interface 接口名<类型>{}

举例:

public interface generic&lt;t&gt;{}

既然是接口那就得定义一个类去实现这个接口

泛型接口:

publi郑州铁路职业技术学院单招c interface generic<t>{}

genricimp类下:苜蓿的做法

public class genricimp<t> generic<t>{   public void show(t t){     system.out.println(t);      }  }

genricdemo类下:

public class genricdemo{   public static void main(str耋老ing[]args){        generic<string> g1=new genericimp<string>();       g1.show("张三");   generic<integer> g2=new genericimp<integer>();       g2.show(100);   }}

七、类型通配符

<? extends t>上限通配,?表示是t的一个未知子类。

<? super t>下限通配,?表示是t的一个未知父类。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!

本文发布于:2023-04-04 10:36:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/4b89d94581500d191381fac0f482ed87.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:这个Java泛型不太正经.doc

本文 PDF 下载地址:这个Java泛型不太正经.pdf

标签:类型   方法   接口   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图