栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中的泛型,从基础到深入案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的泛型,从基础到深入案例

List list = new linkedList<>();

通过添加包含类型的操作符<>,我们将这个列表的专门化缩小到Integer类型,也就是说,我们指定将在列表中保存的类型。然后,编译器可以在编译时强制执行该类型。这可以增加显着的健壮性,并使程序更容易阅读。

我们可以创建一个可以与任何类型的数据一起使用的类。这种类称为泛型类。下面是如何在Java中创建泛型类:

class Main {

public static void main(String[] args) {

// initialize generic class with Integer data

GenericsClass intObj = new GenericsClass<>(5);

System.out.println("Generic Class returns: " + intObj.getData());

// initialize generic class with string data

GenericsClass stringObj = new GenericsClass<>(“Java Programming”);

System.out.println("Generic Class returns: " + stringObj.getData());

}

}

// create a generics class

class GenericsClass {

// variable of T type

private T data;

public GenericsClass(T data) {

this.data = data;

}

// method that return T type variable

public T getData() {

return this.data;

}

}

输出

Generic Class returns: 5

Generic Class returns: Java Programming

在这里,我们创建了一个名为GenericsClass的泛型类,这个类可以用于处理任何类型的数据。

class GenericsClass {…}

这里,角括号内使用的T<>表示类型参数。在主类中,我们创建了GenericsClass的两个对象

IntObj-在这里,类型参数T被Integer替换。现在,GenericsClass处理整数数据。

String Obj-在这里,类型参数T被字符串替换。现在,GenericsClass处理字符串数据。

我们还可以创建一个可以与任何类型的数据一起使用的方法。这类被称为泛型方法。

下面是如何在Java中创建泛型类:

class Main {

public static void main(String[] args) {

// initialize the class with Integer data

DemoClass demo = new DemoClass();

// generics method working with String

demo.genericsMethod(“Java Programming”);

// generics method working with integer

demo.genericsMe

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

thod(25);

}

}

class DemoClass {

// creae a generics method

public void genericsMethod(T data) {

System.out.println(“Generics Method:”);

System.out.println("Data Passed: " + data);

}

}

输出

Generics Method:

Data Passed: Java Programming

Generics Method:

Data Passed: 25

因此,在上面的代码中,我们创建了一个名为genericsMethod的泛型方法。

public void genericMethod(T data) {…}

我们可以通过将实际类型和括号中的实际类型放在方法名称之前来调用泛型方法。

demo.genericMethod(“Java Programming”);

demo.genericMethod(25);

我们可以在不包含类型参数的情况下调用泛型方法。例如,

demo.genericsMethod(“Java Programming”);

[](

)有界类型


让我们来看看有界类型。Type参数可以接受任何数据类型(基本类型除外)。

有界的意思是“受限”,我们可以限制可以被方法接受的类型。

如果我们只想对某些特定类型使用泛型(例如接受数字类型的数据或接受字符串类型的数据),那么我们可以使用有界类型。

在绑定类型的情况下,我们使用EXTEND关键字。

这意味着T只能接受A的子类型的数据。

class GenericsClass {

public void display() {

System.out.println(“This is a bounded type generics class.”);

}

}

class Main {

public static void main(String[] args) {

// create an object of GenericsClass

GenericsClass obj = new GenericsClass<>();

}

}

在上面的代码中,我们创建了一个名为GenericsClass的类。注意,GenericsClass表达式是用有界类型创建的。这意味着GenericsClass只能处理属于数字子类(Integer、Double等)的数据类型。

[](

)泛型优势


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号