JAVA泛型之泛型方法的定义和使用方式

 更新时间:2024年05月08日 09:20:17   作者:NorthCastle  
这篇文章主要介绍了JAVA泛型之泛型方法的定义和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.泛型方法的定义和语法

1.1 定义

泛型方法 是在 调用方法 的时候指明泛型的具体类型。

【泛型方法 能够使方法独立于类的处理指定的类型。】

1.2 语法

修饰符 <T,E,…> 返回值类型 方法名(形参列表){
。。。。。。
}

修饰符与返回值类型中间的 泛型标识符 <T,E,…>,是 泛型方法的标志,只有这种格式声明的方法才是泛型方法。

泛型方法声明时的 泛型标识符 <T,E,…> 表示在方法可以使用声明的泛型类型。

与泛型类相同,泛型标识符可以是任意类型,常见的如T,E,K,V 等。

泛型方法可以声明为 static 的,并且与普通的静态方法是一样的。

2.泛型方法的使用

2.1 普通泛型方法

  • 声明
/**
 * author : northcastle
 * createTime:2021/10/23
 * 泛型方法的定义
 */
public class GenericMethod {

    //1.普通的泛型方法
    public <T> String commonMethod(String name,T t){
        String res = "";
        res += name +"-"+ t;
        System.out.println("普通泛型方法 : "+res);
        return res;
    }
}
  • 调用
/**
 * author : northcastle
 * createTime:2021/10/23
 */
public class GenericMethodApplication {
    public static void main(String[] args) {
        //1.调用普通泛型方法
        GenericMethod genericMethod = new GenericMethod();
        String commonRes01 = genericMethod.commonMethod("001", "bb");
        System.out.println(commonRes01);
        String commonRes02 = genericMethod.commonMethod("002", 100);
        System.out.println(commonRes02);
        String commonRes03 = genericMethod.commonMethod("003", true);
        System.out.println(commonRes03);
        System.out.println("==================");
    }
}

  • 运行结果

普通泛型方法 : 001-bb
001-bb
普通泛型方法 : 002-100
002-100
普通泛型方法 : 003-true
003-true
==================

2.2 静态泛型方法

  • 声明
/**
 * author : northcastle
 * createTime:2021/10/23
 * 泛型方法的定义
 */
public class GenericMethod {

    //2.静态的泛型方法
    public static <T,E> String staticMethod(String name,T t,E e){
        String res = "";
        res += name +"-"+ t +"-"+ e;
        System.out.println("静态泛型方法 : "+res);
        return res;
    }
}

  • 调用
package com.northcastle.genericmethod;

/**
 * author : northcastle
 * createTime:2021/10/23
 */
public class GenericMethodApplication {
    public static void main(String[] args) {
     
        //2.调用静态泛型方法
        String staticRes01 = GenericMethod.staticMethod("001", "aa", "bb");
        System.out.println(staticRes01);
        String staticRes02 = GenericMethod.staticMethod("002", 100, 'c');
        System.out.println(staticRes02);
        String staticRes03 = GenericMethod.staticMethod("003", 12.05d, false);
        System.out.println(staticRes03);
        System.out.println("==================");
   
    }
}
  • 运行结果

静态泛型方法 : 001-aa-bb
001-aa-bb
静态泛型方法 : 002-100-c
002-100-c
静态泛型方法 : 003-12.05-false
003-12.05-false
==================

2.3 泛型方法中的可变参数

  • 声明
/**
 * author : northcastle
 * createTime:2021/10/23
 * 泛型方法的定义
 */
public class GenericMethod {

    //3.带可变参数的泛型方法
    public <A> void argsMethod(A ... args){
        for (A arg : args) {
            System.out.println(arg);
        }
    }
}
  • 调用
package com.northcastle.genericmethod;

/**
 * author : northcastle
 * createTime:2021/10/23
 */
public class GenericMethodApplication {
    public static void main(String[] args) {
     
        //3.调用可变参数的方法
        genericMethod.argsMethod(1,2,300,400,500,600);
        System.out.println("==================");
    }
}
  • 运行结果

1
2
300
400
500
600
==================

完成~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Struts1简介和入门_动力节点Java学院整理

    Struts1简介和入门_动力节点Java学院整理

    这篇文章主要为大家详细介绍了Struts1简介和入门的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • springboot如何获取请求者的ip地址

    springboot如何获取请求者的ip地址

    在Spring框架中,可以使用拦截器(Interceptor)来监听每个控制器(Controller)的请求,并记录请求者的IP地址,这篇文章主要介绍了springboot如何获取请求者的ip地址,需要的朋友可以参考下
    2024-07-07
  • 基于@ComponentScan注解的使用详解

    基于@ComponentScan注解的使用详解

    这篇文章主要介绍了@ComponentScan注解的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java数组判断是否越界的示例代码

    Java数组判断是否越界的示例代码

    在Java编程中,避免数组越界是十分重要的,本文介绍了两种常见的判断数组是否越界的方法:一是通过数组的length属性来判断索引是否合法;二是通过捕获ArrayIndexOutOfBoundsException异常来处理越界问题,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 使用IDEA如何把Java程序打包成jar

    使用IDEA如何把Java程序打包成jar

    这篇文章主要介绍了使用IDEA把Java程序打包成jar,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Spring Boot Web 开发注解篇

    Spring Boot Web 开发注解篇

    在 Spring Boot 快速入门中,只要在 pom.xml 加入了 spring-boot-starter-web 依赖,即可快速开发 web 应用。下文给大家详细介绍了spring boot web 开发注解,感兴趣的朋友参考下吧
    2017-08-08
  • IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文)

    IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文)

    这篇文章主要介绍了IntelliJ IDEA(2019)安装破解及HelloWorld案例(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • metershpere实现调用自定义jar包中的方法

    metershpere实现调用自定义jar包中的方法

    在MeterSphere接口测试中,面对多层循环逻辑和逻辑判断等复杂情况,直接编写测试用例往往显得混乱不便,本文介绍了一个简化这一过程的方法:首先使用IDEA创建Maven工程,编写所需逻辑并生成jar包;然后在MeterSphere中上传此jar包
    2024-10-10
  • 关于Java Interface接口的简单练习题

    关于Java Interface接口的简单练习题

    这篇文章主要给大家分享的是关于Java Interface接口的简单练习题,难度不算大,但是要有一个清晰的逻辑建立接口和链接Java类。下面来看看文章的详细介绍吧,需要的朋友可以参考一下
    2021-11-11
  • 一篇文章带你玩转go语言的接口

    一篇文章带你玩转go语言的接口

    这篇文章主要介绍了go语言的接口,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能够给你带来帮助
    2021-09-09

最新评论