首页 > 编程语言 >java泛型简单入门

java泛型简单入门

时间:2023-03-06 14:58:36浏览次数:39  
标签:java 入门 System public println 泛型 Display out

泛型

泛型 泛指某一种类型 ( 必须是 引用类型 )

 

明确时机:

1.有时候 创建对象的时候, 明确泛型

2.有时候 调用一个方法时, 明确泛型

3.有时候 创建一个类型,然后实现一个接口的时候 明确泛型

 

泛型的好处:

1.让程序更精准 准确 ,把一些运行时的错误,在编写的时候 避免掉

2.提高程序的 可拓展性 兼容性

 

泛型种类:

  1. 泛型方法
  2. 泛型类
  3. 泛型接口

实例:

第一种:每次使用 一种类型 就要创建 一个对象

 

public class Display<SH> {  // 定义一个泛型类
    public void show( SH sh ){
        System.out.println(sh); 
    }
}

 

第二种:每次使用新的 数据类型 需要重写一个构造方法

 

public class Display1 {

    public void display( String s ){
        System.out.println( s );
    }
    public void display( Integer i ){
        System.out.println( i );
    }
    public void display( Boolean b ){
        System.out.println( b );
    }

}

 

第三种:定义的泛型方法 带可变参数

 

public class Display2 {  // 泛型类 作用于 类中所有方法
    public <PY> void play( PY py ){  // 定义一个泛型方法  只作用于当前方法
        System.out.println( py );
    }
}

 

测试类:

public class demo1 {
    public static void main(String[] args) {
        // 泛型类的 可扩展性
        Display<String> str = new Display<>();
        str.show("asdfas");

        Display<Integer> num = new Display<>();
        num.show(547893);

        Display<Boolean> bln = new Display<Boolean>();
        bln.show( true );

        System.out.println("------------------------------");

        // 普通 泛型方法
        Display1 s = new Display1();
        s.display("sfasg");

        Display1 n = new Display1();
        n.display(2345);

        Display1 b = new Display1();
        b.display( true );

        System.out.println("---------------------------");

        // 带参可变的 泛型方法
        Display2 p = new Display2();
        p.play("asdfa");
        p.play(345);
        p.play(true);
        p.play(3.14);

    }
}

 

标签:java,入门,System,public,println,泛型,Display,out
From: https://www.cnblogs.com/xiaoxiblog/p/17183811.html

相关文章

  • 【java】log日志体系学习
    logback配置详解(一)——logger、root:https://www.cnblogs.com/cb0327/p/5759441.htmlSLF4J(二)-SLF4J绑定了多个实现类的错误是怎么一回事儿?源码解析https://blog.c......
  • 泛型
    泛型概念类型参数,参数化的类型比喻:标签形式1、泛型类、泛型接口//语法格式[修饰符]class/interface类名/接口名<类型参数列表>{}多个之间使用,分割......
  • ChatGPT带你入门机器学习:逻辑回归模型博客和小红书风格文案一次搞定!
    打脸了顺手向大家演示一下如何用ChatGPT写技术博客吧,其实蛮简单的,特别需要操心的是它会一本正经的胡说八道,还信誓旦旦的。我们要审查它的回答,万不可全信。为了便于阅......
  • JavaScript中给带有默认参数的方法传递自定义参数
    1,有一个默认参数($event为默认参数,index为自定义参数)     @select="handleSelect(index,$event)"2,有多个默认参数(queryString,cb为默认参数,index为自定义参数......
  • JAVA执行es6脚本
    publicstaticvoidmain(String[]args){System.setProperty(ClientLogger.CLIENT_LOG_LEVEL,"OFF");//SpringApplication.run(SrmSettleAccountAppli......
  • Java 合并多个碎片文件到一个文件,也可以直接使用linux cat命名
    Java合并多个碎片文件到一个文件,也可以直接使用linuxcat命名linuxcat命令cat*.zip.*>out.zipjava工具使用方式#编译javacCombineFile.java#执行javaComb......
  • EF7创建模型入门篇
    在EF7中,创建一个模型是非常重要的步骤。本文将使用微软官方文档中的指南,来学习EF7中的创建模型篇,外加一点点个人理解。实体类型在EF7中,你需要使用modelBuilder.Entity......
  • JavaScript:Class.method 与 Class.prototype.method
    以下两个声明有什么区别?Class.method=function(){/*code*/}Class.prototype.method=function(){/*codeusingthis.values*/}把第一条语句看成......
  • JavaWeb——Servlet
      JDBC也是JavaEE的规范之一,其实也是接口。快速入门  这个jar包的依赖范围必须写成provided(在编译环境和测试环境有效,在运行环境无效),不然就会报错。这样以后打......
  • MySQL安装入门第一篇
    【1】MySQL的版本:近期主要历史版本有5.0/5.1/5.5/5.6/5.7,目前最新版本是MySQL8.6.0曾经是个内部试验版本,已取消了。MySQL8.0的版本历史1)2016-09-12第一个DM(develop......