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

public <T> void method,此处泛型的意思

    博客分类:
  • java
 
阅读更多
今天项目中遇到这样一个方法:
public <T> void method(T var)
不太明白什么意思,后来搜索下几篇文章,自己总结一下,和大家分享。
先看例子:
1.static void fromArrayToCollection(Object[] a, Collection<?> c) {
    for (Object o : a) {
        c.add(o); // compile-time error
    }
}
例子1中Collection<?>这种写法,在调用add方法时是会报错的,因为你不能将一个对象推送到未知类型的集合中,虽然改成Collection<Object> c,编译不出错,但把一个object当做泛型摆入集合中,显然也不合理。

2.static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
    for (T o : a) {
        c.add(o); // Correct
    }
}
例子2中,我们使用了泛型,没有问题,注意:这里方法返回值前的泛型如果不加,会编译出错,这里<T>存在的作用,是为了参数中能够出现T这种数据类型。
具体调用方法:
Collection<String> cs = new ArrayList<String>();
Collection<Number> cn = new ArrayList<Number>();

String[] sa = new String[100];
Integer[] ia = new Integer[100];
Float[] fa = new Float[100];
Number[] na = new Number[100];

// T inferred to be String
fromArrayToCollection(sa, cs);

// T inferred to be Number
fromArrayToCollection(ia, cn);

// T inferred to be Number
fromArrayToCollection(fa, cn);

// T inferred to be Number
fromArrayToCollection(na, cn);


分享到:
评论

相关推荐

    C# 解析json格式数据为IList

    C# 解析json格式数据为IList&lt;T&gt;

    C#将DataTable转化为List&lt;T&gt;

    本文给大家讲解的是如何使用C#将DataTable数据源转化为List&lt;T&gt;泛型集合(已知T类型) 的方法和示例,有需要的小伙伴可以参考下

    Json与实体相互转换,支持IList泛型

    Json转换为实体;Json转换为IList&lt;T&gt;;实体转换为Json;IList&lt;T&gt;转换为Json;

    java泛型总结

    深入理解java泛型,包括类名泛型的定义,方法泛型定义,泛型的返回

    泛型类vector<T>源码分析

    泛型类vector&lt;T&gt;源码分析

    清华大学C++程序设计讲稿及源程序

    继承与派生&lt;br&gt;第8章 多态性&lt;br&gt;第9章 群体类和群体数据的组织&lt;br&gt;第10章 泛型程序设计与C++标准模板库&lt;br&gt;第11章 流类库与输入/输出&lt;br&gt;第12章 异常处理&lt;br&gt;第13章 MFC库与WINDOWS程序开发概述 &lt;br&gt;

    json字符串实体bean或者List互转(gson和jackson,支持泛型)

    json字符串实体bean或者List&lt;bean&gt;互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢

    listview万能适配器

    一个通用的适配器`BaseCommAdapter&lt;T&gt;,非常简单,继承该`BaseCommAdapter&lt;T&gt;`,利用泛型传入item对应数据的javabean类,我们只需要重写3个方法即可(其中有一个还是构造方法)。

    C#入门经典.part2

    &lt;br&gt; 第5章 变量的更多内容 &lt;br&gt; 第6章 函数 &lt;br&gt; 第7章 调试和错误处理 &lt;br&gt; 第8章 面向对象编程简介&lt;br&gt; 第9章 定义类 &lt;br&gt; 第10章 定义类成员&lt;br&gt; 第11章 集合、比较和转换&lt;br&gt; 第12章 泛型&lt;br&gt; ...

    接口IComparer比较器关于排序

    对你很有用的哈 接口IComparer&lt;T&gt;比较器关于排序Sort()方法

    C#编程经验技巧宝典

    10&lt;br&gt;&lt;br&gt;0023 如何添加引用第3方控件 11&lt;br&gt;&lt;br&gt;0024 如何生成DLL文件 11&lt;br&gt;&lt;br&gt;0025 如何使用不安全代码 11&lt;br&gt;&lt;br&gt;第2章 语言基础 13&lt;br&gt;&lt;br&gt;2.1 注释 14&lt;br&gt;&lt;br&gt;0026 如何对代码进行注释 14&lt;br&gt;...

    java泛型总结.docx

    泛型类型:定义泛型类型时,使用尖括号&lt;&gt;,并在尖括号中指定类型参数。例如,List&lt;String&gt;表示一个字符串类型的列表。 泛型方法:定义泛型方法时,在方法名后面使用尖括号&lt;&gt;,并在尖括号中指定类型参数。例如,...

    C# 泛型类(函数)的实例化小例子

    泛型类: 代码如下:public class MyClass&lt;T&gt; { public T MyElement { get; set; } }泛型函数: 代码如下:public T ReturnElement&lt;T&gt;() { throw new NotImplementedException(); } 但是当需要对MyElement进行实例化的...

    Silverlight开发MVVM框架(MVVM Light Toolkit) v4 beta1.rar

    GenericMessage&lt;T&gt;:一个简单的泛型消息。 NotificationMessage: 用于发送一个string类型通知给接受者。 NotificationMessage&lt;T&gt;:NotificationMessage泛型方工。 NotificationMessage:向接受者发送一个通知,允许...

    自测试卷5.doc1.简述C#、Java和C++的比较。 2.已知变量x的初值为24,则表达式x+=x--+=x%=17运算的结果值为( )。

    6.成员变量和成员方法前加...9.有一个泛型类class List&lt;T&gt;{},则正确实例化该泛型类的语句是( )。 A)List t=new List(); B)List t=new List&lt;T&gt;; C)List&lt;T&gt; t=new List&lt;T&gt;(); D)List&lt;int&gt; t=new List&lt;int&gt;();

    Effective C++

    &lt;br&gt;你可以由本书发现以下关键主题:&lt;br&gt;● Generic (泛型)编程风格和Standard Template Library(STL)&lt;br&gt;● Object-based(个别对象)编程风格和class的设计&lt;br&gt;● Object-oriented(面向对象)编程风格和classes阶层...

    C# ListT的用法小结

    所属命名空间:System.Collections.Generic public class List&lt;T&gt; : IList&lt;T&gt;, ICollection&lt;T&gt;, IEnumerable&lt;T&gt;, IList, ICollection, IEnumerable List&lt;T&gt;类是 ArrayList 类的泛型等效类。该类使用大小可按需动态...

    2013-01-30 泛型、反射.pdf

    为什么要有泛型集合(List&lt;T&gt;,Dictionary&lt;K,V&gt;,LinkedList&lt;T&gt;)? 1.为了避免装箱拆箱; 2.复用集合类里的 代码(算法) List&lt;string&gt; List&lt;int&gt; 1.概念 1.1官方:是一种特殊的【算法重用】机制。允许程序员在代码...

    C#重要知识之——泛型列表List例子

    很多初学C#编程的人可能对泛型列表List的使用不是很清楚,希望这个例子能帮助大家.

    230426-048shopDemo(以泛型方式定义的递归方法构建树型结构数据的2种实现方法)

    public static void TreeBuilder&lt;T&gt;(List&lt;T&gt; all, T currentParentItem, long? parentId = null, string idProperty = "Id", string parentIdProperty = "ParentId", string childrenProperty = ...

Global site tag (gtag.js) - Google Analytics