在没有泛型的时候,我们使用ArrayList时对得到的结果要进行强制转换,因为得到的是Object类型,
例如:
ArrayList list = new ArrayList();
……
String str = (String) list.get(0);
在使用了泛型以后:
ArrayList<String> list = new ArrayList<String>();
……
String str = list.get(0);
这个地方,编译器通过ArrayList<String>知道了list中存储的是String类型的数据,因此直接返回String了,不用强制进行转换,确保了数据的安全。
简单的自定义泛型类:
public class Pair<T> {
private T first;
private T second;
Pair(T first, T second) {
this.setFirst(first);
this.setSecond(second);
}
public Pair<T> makePair(T first, T second) {
return new Pair<T>(first, second);
}
public T getFirst() {
return first;
}
public void setFirst(T first) {
this.first = first;
}
public T getSecond() {
return second;
}
public void setSecond(T second) {
this.second = second;
}
}
对于简单的泛型类,使用起来很简单:
String filePath = "/home/usr";
String fileName = "myfile";
Pair<String> pair = new Pair(filePath, fileName);
还可以是多个参数的,例如:
class GenericClass<U, S> {
private U u;
private S s;
public GenericClass<U, S> makePair(U u, S s) {
return new GenericClass<U, S>();
}
public U getU() {
return u;
}
public S getS() {
return s;
}
}
这是简单的泛型类的设计。
另外,还有简单的泛型方法,他可以在泛型类中,也可以在普通的类中,例如一个在普通类中的泛型方法:
class MyClass {
public static <T> void getFirst(String[] strs) {
……
}
}
方法的定义时,类型参数(T)放在修饰符(这里是public static)之后,返回类型的前面。
在方法的调用时可以有两种形式:
MyClass.getFirst(strs);
MyClass.<String> getFirst(strs);
也就是说可以省略掉<String>
分享到:
相关推荐
Java泛型是Java语言中的一种机制,用于在编译期检查类型安全。Java泛型的出现解决了Java早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的ClassCastException。 Java泛型的...
Java泛型是Java SE 5.0引入的一个重要特性,极大地提高了代码的类型安全性和重用性。在本文中,我们将深入探讨Java泛型的进阶概念,包括通配符、边界、类型擦除以及在实际开发中的应用。 1. 通配符 通配符在Java...
思维导图之Java泛型详解
总结,Java泛型技术的发展极大地提升了Java编程的效率和安全性。它通过编译时检查和类型安全保证,帮助开发者编写出更加健壮和易于维护的代码。理解并熟练掌握Java泛型,是每一个Java开发者必备的技能。
下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入,极大地增强了代码的类型安全性和重用性。泛型允许我们在编写类、接口和方法时指定参数化类型,使得代码在编译时期就能捕获类型错误,...
以下是对Java泛型的详细解释: 1. **泛型类型**:泛型类型允许我们在定义类、接口或集合时引入类型参数。比如`List<String>`就是一个泛型类型,其中String是类型参数,代表了列表中的元素类型。这样,当我们将字符...
### Java泛型的使用详细讲解 ...Java泛型提供了一种强大且灵活的方式来编写类型安全的通用代码。通过使用泛型,不仅可以减少代码冗余,还可以提高程序的健壮性和可读性。希望本文能帮助你更好地理解和使用Java泛型。
标题与描述均提到了“全面总结Java泛型--实例”,这表明文章旨在深入解析Java泛型的概念,并通过具体示例来展示其应用。Java泛型是Java编程语言的一个强大特性,它允许在编译时检查类型安全,并且所有的强制转换都是...
Java 泛型是 Java 编程语言中一个强大的特性,它允许在类、接口和方法中使用类型参数,从而增加了代码的复用性和安全性。在本文中,我们将深入探讨 Java 泛型的各种方面。 首先,普通泛型允许我们在定义类时引入一...
总结来说,Java泛型的类型擦除虽然在运行时消除了类型信息,但通过编译时的类型检查、桥接方法、通配符等补偿机制,仍然实现了强大的类型安全和便利性。开发者应理解这些补偿机制,以便更好地利用Java泛型进行类型...
"Java 泛型总结(一):基本用法与类型擦除" Java 泛型是 Java 语言中的一种强大功能,它可以使代码更加简洁、安全。下面是对 Java 泛型的基本用法和类型擦除机制的介绍。 泛型的基本用法 ------------- 泛型是...
总结来说,Java泛型与容器详细笔记提供了关于如何使用Java中的泛型和容器类的深入理解,涵盖了Java集合框架的核心组件,泛型的类型安全机制,以及一些提高开发效率的第三方库。文档通过实例代码展示了如何在实际项目...
#### 一、Java泛型概述 Java泛型(Generics)是Java SE 5.0引入的一项重要新特性,它允许开发者在定义类、接口或方法时使用类型参数(Type Parameters)。类型参数在使用时可以用具体的类型来替代。这一特性的引入...
### Java泛型类和函数详解 #### 泛型概述 在Java中,泛型是一种允许开发者在类、接口和方法中使用类型参数的功能。通过使用泛型,可以在编写代码时指定一个或多个类型参数,从而使得编写的代码更加灵活且重用性更高...