`
hongjn
  • 浏览: 56067 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

Java泛型总结(一)

阅读更多

在没有泛型的时候,我们使用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早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的ClassCastException。 Java泛型的...

    Java泛型总结(2)进阶篇

    Java泛型是Java SE 5.0引入的一个重要特性,极大地提高了代码的类型安全性和重用性。在本文中,我们将深入探讨Java泛型的进阶概念,包括通配符、边界、类型擦除以及在实际开发中的应用。 1. 通配符 通配符在Java...

    思维导图之Java泛型详解

    思维导图之Java泛型详解

    java泛型技术之发展

    总结,Java泛型技术的发展极大地提升了Java编程的效率和安全性。它通过编译时检查和类型安全保证,帮助开发者编写出更加健壮和易于维护的代码。理解并熟练掌握Java泛型,是每一个Java开发者必备的技能。

    java 泛型方法使用示例

    下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...

    Java泛型编程最全总结

    Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入,极大地增强了代码的类型安全性和重用性。泛型允许我们在编写类、接口和方法时指定参数化类型,使得代码在编译时期就能捕获类型错误,...

    java泛型总结.docx

    以下是对Java泛型的详细解释: 1. **泛型类型**:泛型类型允许我们在定义类、接口或集合时引入类型参数。比如`List&lt;String&gt;`就是一个泛型类型,其中String是类型参数,代表了列表中的元素类型。这样,当我们将字符...

    java 泛型的使用 详细讲解

    ### Java泛型的使用详细讲解 ...Java泛型提供了一种强大且灵活的方式来编写类型安全的通用代码。通过使用泛型,不仅可以减少代码冗余,还可以提高程序的健壮性和可读性。希望本文能帮助你更好地理解和使用Java泛型。

    全面总结Java泛型--实例

    标题与描述均提到了“全面总结Java泛型--实例”,这表明文章旨在深入解析Java泛型的概念,并通过具体示例来展示其应用。Java泛型是Java编程语言的一个强大特性,它允许在编译时检查类型安全,并且所有的强制转换都是...

    全面总结Java泛型

    Java 泛型是 Java 编程语言中一个强大的特性,它允许在类、接口和方法中使用类型参数,从而增加了代码的复用性和安全性。在本文中,我们将深入探讨 Java 泛型的各种方面。 首先,普通泛型允许我们在定义类时引入一...

    Java泛型类型擦除后的补偿

    总结来说,Java泛型的类型擦除虽然在运行时消除了类型信息,但通过编译时的类型检查、桥接方法、通配符等补偿机制,仍然实现了强大的类型安全和便利性。开发者应理解这些补偿机制,以便更好地利用Java泛型进行类型...

    Java 泛型总结(一):基本用法与类型擦除

    "Java 泛型总结(一):基本用法与类型擦除" Java 泛型是 Java 语言中的一种强大功能,它可以使代码更加简洁、安全。下面是对 Java 泛型的基本用法和类型擦除机制的介绍。 泛型的基本用法 ------------- 泛型是...

    基于Java泛型对Spring中强制类型转换工厂的改进

    Java泛型是在JDK 5之后引入的一种特性,允许在类、接口和方法中使用类型参数,从而避免了传统集合类中大量使用的强制类型转换。泛型提供了一种类型安全的方式来处理不同类型的数据,同时也提高了代码的复用性和可...

    Java泛型与容器详细笔记.pdf (带书签)

    总结来说,Java泛型与容器详细笔记提供了关于如何使用Java中的泛型和容器类的深入理解,涵盖了Java集合框架的核心组件,泛型的类型安全机制,以及一些提高开发效率的第三方库。文档通过实例代码展示了如何在实际项目...

    Java深度历险之Java泛型.docx

    #### 一、Java泛型概述 Java泛型(Generics)是Java SE 5.0引入的一项重要新特性,它允许开发者在定义类、接口或方法时使用类型参数(Type Parameters)。类型参数在使用时可以用具体的类型来替代。这一特性的引入...

    java泛型类和函数

    ### Java泛型类和函数详解 #### 泛型概述 在Java中,泛型是一种允许开发者在类、接口和方法中使用类型参数的功能。通过使用泛型,可以在编写代码时指定一个或多个类型参数,从而使得编写的代码更加灵活且重用性更高...

Global site tag (gtag.js) - Google Analytics