前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JAVASE】探索 Java 泛型:开启通用编程的奥秘

【JAVASE】探索 Java 泛型:开启通用编程的奥秘

作者头像
小舒不服输
发布2024-01-30 13:46:30
1100
发布2024-01-30 13:46:30
举报
文章被收录于专栏:编程乐园·
🥳泛型

🎡1、什么是泛型

Java泛型是Java 5引入的一个新特性,它允许在编译时定义类型参数,使代码更加灵活和可重用。通过使用泛型,你可以编写一个类或方法,该类或方法可以处理多种数据类型,而不仅仅是特定的数据类型。

🎡2、泛型的优点

(1)类型安全:使用泛型,可以在编译时捕获类型错误,而不是在运行时。 (2)代码复用:通过使用泛型,可以编写适用于多种数据类型的代码,避免代码重复。 (3)灵活性:使用泛型,可以在运行时动态地指定类型,增加了代码的灵活性。

🎡3、泛型的语法

泛型类是使用<>这样的类型参数来声明的类,<>中T是一个通用的类型占位符。例如:

代码语言:javascript
复制
class Box<T> {  
    private T t;  
  
    public void set(T t) { this.t = t; }  
    public T get() { return t; }  
}
public class Main() {
	public static void main(String[] args) {
		Box<Integer> box1 = new Box<>();
		box1.set(12);
		Box<String> box2 = new Box<>();
		box2.set("abc");
	}
}

在这个例子中,我们定义了一个名为Box的类,它使用一个类型参数T。这个类有一个私有的成员变量t,其类型为T。我们可以通过调用set()和get()方法来设置和获取t的值。

🪄类名后的 <> 代表占位符,表示当前类是一个泛型类 了解: 【规范】类型形参一般使用一个大写字母表示,常用的名称有: E 表示 Element K 表示 Key V 表示 Value N 表示 Number T 表示 Type S, U, V 等等 - 第二、第三、第四个类型

🎡4、泛型方法

泛型方法是在方法声明中使用类型参数的方法。例如:

代码语言:javascript
复制
public class GenericClass {
    public <T> T genericMethod(T parameter) {
        // 可以使用 T 类型的参数和返回值
        return parameter;
    }
}

🎡5、类型擦除和限制

在 Java 中,泛型在编译时会进行类型擦除,将类型参数替换为其边界类型(如Object)。这意味着在运行时无法获取具体的类型参数信息。 为了避免潜在的问题,Java 还提供了一些限制,例如不能在泛型类型上使用基本类型、不能创建泛型数组等。

🎡6、泛型的上界

在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。

🎄6.1 语法

代码语言:javascript
复制
class 泛型类名称<类型形参 extends 类型边界> {
	...
}

🎄6.2 示例

代码语言:javascript
复制
public class MyArray<E extends Number> {
	...
}

只接受 Number 的子类型或本身作为 E 的类型实参

代码语言:javascript
复制
MyArray<Integer> l1; // 正常,因为 Integer 是 Number 的子类型
MyArray<String> l2; // 编译错误,因为 String 不是 Number 的子类型

了解: 没有指定类型边界 E,可以视为 E extends Object

🥳到此,我们的 Java 泛型博客之旅就告一段落了。希望我的分享对你有所帮助。如果你有任何问题或想法,欢迎在评论中留言。让我们继续探索 Java 世界,共同成长!✌️

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🥳泛型
  • 🎡1、什么是泛型
  • 🎡2、泛型的优点
  • 🎡3、泛型的语法
  • 🎡4、泛型方法
  • 🎡5、类型擦除和限制
  • 🎡6、泛型的上界
    • 🎄6.1 语法
      • 🎄6.2 示例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档