Java泛型类与泛型方法的定义详解
作者:cakincqm 时间:2023-11-25 01:29:22
本文实例讲述了Java泛型类与泛型方法的定义。分享给大家供大家参考,具体如下:
Java泛型类的定义
一 点睛
泛型类定义的语法如下:
[访问修饰符] class 类名称 <T>
泛型类的主要作用在于类被实例化后,传入具体的类型参数,对类的成员属性的类型和成员方法的参数类型和返回值类型进行替换。
二 代码
public class Base<T> {
T m;
Base(T t) {
m = t;
}
public T getM(){
return m;
}
public void print() {
System.out.println("base print : " + m);
}
public static void main(String[] args) {
Base<String> base=new Base<String>("base class is general");
System.out.println(base.getM());
base.print();
}
}
三 运行
base class is general
base print : base class is general
四 说明
T可以用任何一种引用类型,但是不允许使用基本类型,如int、double、char、boolean等是不允许的。泛型类定义时,可以使用T来定义其成员变量和成员方法的返回值和参数。
Java泛型方法的定义
一 点睛
泛型方法主要用于容器类,Java中任何方法,包括静态的(注意,泛型类不允许在静态环境中使用)和非静态的,均可以用泛型来定义,而且和所在类是否是泛型没有关系。
下面是泛型方法的定义
[public] [static] <T> 返回值类型 方法名(T 参数列表)
二 代码
public class GeneralMethod {
public static <U> void print(U[] list) {
System.out.println();
for (int i = 0; i < list.length; i++) {
System.out.print(" " + list[i]);
}
System.out.println();
}
public static void main(String[] args) {
String a[]={"a","b","c","d","e"};
Character b[]={'1','2','3','4','5'};
Integer c[]={1,2,3,4,5};
GeneralMethod.print(a);
GeneralMethod.print(b);
GeneralMethod.print(c);
}
}
三 运行
a b c d e
1 2 3 4 5
1 2 3 4 5
四 说明
使用泛型方法时,至少返回值或参数有一个是泛型定义的,而且应该保持一致,否则可能会受到各种限制,因此,这里建议保持一致。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
来源:https://blog.csdn.net/chengqiuming/article/details/93353488
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
![](https://img.aspxhome.com/file/2023/4/91644_0s.png)
Java基础篇之反射机制示例详解
![](https://img.aspxhome.com/file/2023/9/113379_0s.png)
Android 实现定时器的四种方式总结及实现实例
SpringBoot整合mybatis-plus进阶详细教程
![](https://img.aspxhome.com/file/2023/6/61836_0s.png)
IDEA不识别Java文件:文件变橙色&显示后缀名.java的解决
![](https://img.aspxhome.com/file/2023/8/118918_0s.png)
Android中Json数据读取与创建的方法
![](https://img.aspxhome.com/file/2023/3/138963_0s.png)
Java Swing程序设计实战
![](https://img.aspxhome.com/file/2023/9/80869_0s.jpg)
Android Activity与Intent详解及示例代码
![](https://img.aspxhome.com/file/2023/8/96018_0s.gif)
Java通过匿名类来实现回调函数实例总结
Spring中自动装配的4种方式
SpringMvc MultipartFile实现图片文件上传示例
![](https://img.aspxhome.com/file/2023/5/113455_0s.png)
sin(x)如何求解的java代码实现方法
![](https://img.aspxhome.com/file/2023/3/64793_0s.jpg)
Audio Source组件及相关API
c#字符串编码问题的处理解决
![](https://img.aspxhome.com/file/2023/7/88407_0s.jpg)
Android实现左右滑动切换图片
![](https://img.aspxhome.com/file/2023/8/109178_0s.gif)
java poi导出图片到excel示例代码
![](https://img.aspxhome.com/file/2023/6/58736_0s.png)
C#实现图形位置组合转换的方法
深入理解Android热修复技术原理之资源热修复技术
![](https://img.aspxhome.com/file/2023/9/137179_0s.jpg)
Visual Studio 2019 清理空行问题(非正则表达式)
![](https://img.aspxhome.com/file/2023/0/129710_0s.png)
C#异常捕获机制图文详解
![](https://img.aspxhome.com/file/2023/5/116445_0s.png)