`
deng_1987
  • 浏览: 6514 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

泛型基础(1)

    博客分类:
  • java
阅读更多
说到泛型大家可能都很了解,因为项目中用到泛型的地方很多。比如dao中,用泛型类实现泛型接口。泛型类和泛型接口不说了。着重讲哈泛型方法。
public <T> void f(T t){...}//定义泛型方法,只需要将泛型参数列表置于返回值前
在创建泛型类的时候,必须指定参数类型。
而使用泛型方法则不需要,以为编译器会为我们找出具体的类型,这称为类型参数推断
public <T> void f(T x){
		System.out.println(x.getClass().getName());
	}
	public static void main(String[] args){
		GenericMethods gm=new GenericMethods();
		gm.f(" ");
		gm.f(9);
	}


由类型方法而引申的几个便利方法
1.杠杆利用泛型推断
Map<Person,List<? extends Person>> map=new HashMap<Person,List<? extends Person>>()这样写起来很麻烦
可以直接

class New{
   public stataic <k,v> Map<k,v> map{
       return new HashMap<k,v>;
   }
}
使用的时候
Map<Person,List<? extends Person>> ma=New.map();

注意编译器默认认为New.map()返回的是Object类型,也就是说编译器认为:其返回值被赋值给一个Object对象。
可变参数的泛型方法
public static <T> List<T> makeList(T... args)
分享到:
评论

相关推荐

    第十五课 泛型基础1

    首先,泛型的基础在于类型变量,它们在函数或类的定义中以的形式出现。这里的"T"是一个占位符,代表一个未知的类型。当实际使用这些组件时,开发者可以指定代表的具体类型,或者让TypeScript进行类型推断。例如,...

    Delphi中的泛型基础及简单应用

    Delphi中的泛型基础及简单应用

    c#泛型基础讲解

    ### C# 泛型基础讲解 #### 泛型概述 C# 2.0 版本引入了泛型这一重要特性,它极大地扩展了 C# 语言的能力,并且提升了 .NET Framework 的灵活性和效率。泛型允许开发人员定义类型参数化的类、接口、方法等,这些...

    关于java基础的泛型的练习

    Java泛型是Java SE 5.0引入的一个重要特性,它极大地增强了代码的类型安全...在进行"关于Java基础的泛型的练习"时,可以尝试编写不同的泛型类、泛型方法,体验泛型带来的便利,并理解其背后的类型系统和类型擦除机制。

    java 泛型基础简单事例

    1. **泛型类**:泛型类允许我们在类中定义类型参数。例如,一个简单的泛型栈可以定义如下: ```java public class GenericStack&lt;T&gt; { private T[] elements; // 其他方法如 push, pop, size 等 } ``` 这样的...

    Java基础篇:泛型.pdf

    泛型是Java编程语言中用于减少类型转换错误和增强代码安全性的机制,它允许在定义类、接口和方法时使用类型参数。通过这种方式,可以在编译时期捕获那些只有在运行时期才会暴露的类型错误,提高了代码的健壮性。 ...

    泛型笔记学习2009

    ### 泛型基础知识与应用详解 #### 泛型概述 泛型是Java语言的一个重要特性,它主要解决了在集合框架中频繁出现的类型转换问题,同时也增强了类型安全性。泛型的概念最早出现在Java 5.0版本中,它允许开发者创建能够...

    SSH泛型代码实例

    4. **泛型基础概念** - **类型参数**:如`&lt;T&gt;`,表示一个未指定具体类型的类型参数,可以在类、接口、方法等处使用。 - **类型通配符**:如`?`,表示任何类型,但可能有上界或下界的限制。 - **边界**:如`...

    java泛型学习ppt

    泛型基础: * 在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数。 * 当声明或者实例化一个泛型的对象时,必须指定类型参数的值。 自定义简单泛型: * public class Gclass&lt;T&gt;{ private T a; ...

    黑马程序员----泛型与反射的小运用

    在Java编程语言中,泛型和反射是两个非常重要的特性,它们在软件开发中有着广泛的应用。本篇文章将深入探讨这两个概念以及它们在实际开发中的小运用。 首先,我们来看泛型(Generics)。泛型是在Java SE 5.0引入的...

    C#基础之泛型

    本文将深入探讨C#中的泛型基础,包括泛型的本质、规范以及如何通过反射来创建泛型实例。 1. 泛型的本质 泛型的本质在于其类型参数化,允许开发者在定义类、接口或方法时声明一个或多个类型参数,如`T`。在实际使用...

    学习泛型语法1

    在泛型继承方面,我们将会看到如何在一个泛型类基础上创建子类。泛型类可以作为父类,而子类可以指定父类中类型参数的具体类型。这允许子类继承并扩展泛型类的功能,同时保持类型安全。 最后,我们将探讨泛型在...

    泛型和泛型集合类用法

    #### 一、泛型基础概念 泛型是现代编程语言中的一项重要特性,它允许开发者在不指定具体数据类型的情况下编写类或方法,从而达到代码重用的目的。在.NET Framework 2.0及以后版本中,泛型得到了广泛的应用和支持。...

    java泛型指南 经典

    因此,在运行时,所有泛型类型看起来都像是它们的基础类型。例如,`List&lt;Integer&gt;` 和 `List&lt;String&gt;` 在运行时都表现为 `List` 类型。 ##### 6.3 在老代码中使用泛型代码 当我们在非泛型代码中使用泛型代码时,...

    Jdk15泛型的实现

    GJ是一个支持泛型特性的Java编译器插件,为后续的泛型技术发展奠定了基础。到了JDK1.4,通过JSR#14的支持,泛型技术以插件的形式得到了更广泛的采纳,尽管当时的Java标准库并未针对泛型进行全面的改写。直至JDK1.5,...

    泛型完整代码.zip

    1. **泛型类**:泛型类是在类定义时引入类型参数,例如`public class Box&lt;T&gt; { T item; }`,这里的`T`就是一个类型参数,代表任意类型。在实例化泛型类时,我们可以指定具体的类型,如`Box&lt;String&gt; box = new Box();...

    java泛型及基础知识

    java泛型

    Java基础笔记之集合框架和泛型

    详细的介绍了集合框架的用法,及其语法规则,剖析了使用的使用注意事项,帮助更牢靠的掌握集合框架的知识及泛型内容。谢谢

Global site tag (gtag.js) - Google Analytics