52.在方法上面自定义泛型

自定义泛型:自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量

方法上自定义泛型:
    修饰符  <声明自定义的泛型>返回值类型 函数名(使用自定义泛型){
        //代码块
    }

例如:
    public <T>String func(T t){
    
    }

在泛型中不能使用基本数据类型,如果使用基本数据类型,那么就使用基本数据类型对应的的包装类

byte      Byte
short     Short
int      Integer
long      Long

double     Double
float     Float

boolean    Boolean
char      Character

方法泛型要注意的事项:
    1.在方法上面定义泛型,这个自定义泛型的具体数据类型实在调用此方法传入数据的时候确定的(也就是传入什么类型数据,它就是什么类型)
    2.自定义泛型只要符合标识符的命名规范就可以,但是自定义泛型一般的习惯是使用大写的T和E(T:type  E:element)

需求:把Integer类型集合中的元素全部加1

public class Demo2 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        Iterator<Integer> it = list.iterator();
        while(it.hasNext()) {
            System.out.println(add(it.next()));
        }
    }

    public static <T>Integer add(T t){

        return (Integer)t+1;
    }
}

原文地址:https://www.cnblogs.com/zjdbk/p/8998895.html

时间: 2024-10-13 14:37:05

52.在方法上面自定义泛型的相关文章

net 自定义泛型那点事

泛型概述 泛型是程序设计语言的一种特性.允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明.各种程序设计语言和其编译器.运行环境对泛型的支持均不一样.将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型.泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念. 泛型定义 泛型的定义主要有以下两种: 1.在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象.(这是当今较常见的定义) 2.在程序编码中一些包含参数的类.其

.NET基础之自定义泛型

在.NET中泛型使用非常频繁,在控制台应用程序中,默认的引入了System.Collection.Generics名称空间,其中就提供了我们经常使用的泛型:List<T>和Dictionary<T>,相信用过它们的都知道它们的强大.还有一种我们经常使用的简单的泛型:System.Nullable<T>,即可空类型.我们可以: System.Nullable<int> nullableInt; 声明一个可空的int类型,由于C#语法对这个做了简化通常我们都不这

java JDK8 学习笔记——第18章 自定义泛型、枚举与注释

第十八章 自定义泛型.枚举与注释 18.1 自定义泛型 泛型定义: (1)仅定义在方法上的泛型语法 (2)用来限制泛型可用类型的extends与super关键字(3)?类型通配字符的使用 18.1.1 使用extends与? 1.若extends之后指定了类与接口,想再指定其他接口,可以使用&连接. 2.如果B是A的子类,而Node< B>可视为一种Node< A>,则称Node具有共变性或有弹性的.Java泛型不具有共变性,可以使用类型通配字符?与extends来声明变量

JAVA基础_自定义泛型

泛型的来源 在Java中,泛型借鉴了C++的模版函数,从而引入了泛型. C++泛型 int add(int x,int y){ return x + y; } float add(float x.float y){ return x + y; } double add(double x,double y){ return x + y; } // 泛型函数对上面的整数,浮点数的抽象和实现 template<class T> T add(T x,T y){ return x + y; } 自定义泛

通过反射创建自定义泛型的实例。

比如有这样一个泛型:Demo.GenericsSimple<T,TT> 我想要通过反射创建一个Demo.GenericsSimple<string,int>的实例可以通过下面的格式进行创建: System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空间.User`形参数量N[[1形参类型全名,形参类型所在的程 序集名称],[2形参类型全名,形参类型所在的程序集名称],[3形参类型全名,形参类型

定制对ArrayList的sort方法的自定义排序

java中的ArrayList需要通过collections类的sort方法来进行排序 如果想自定义排序方式则需要有类来实现Comparator接口并重写compare方法 调用sort方法时将ArrayList对象与实现Commparator接口的类的对象作为参数 示例: // 外部类的方式 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.uti

泛型和自定义泛型

1.自定义泛型 public static <T>T getFactor(T t){}  注意T是所在的地方 public <T>void reverse(T[] arr){}     没有返回值类型的情况 T Type  类型      E  Element    元素

datasnap远程方法支持自定义对象传参

有同仁需要远程方法传输自定义的数据类型,他以为要自己写代码会很复杂,其实DATASNAP早就为我们想到了. datasnap的数据序列和还原真是无与伦比的强大,其远程方法支持自定义对象传参,DATASNAP会自动使用JSON序列和还原自定义的对象. 1)自定义一个对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; RecsMax: Integer; end; 2)服务端远程

方法中的泛型--同一方法中使用多个泛型 子类

方法中的泛型--同一方法中使用多个泛型: 原创: 以下是我使用的同一方法中使用多个泛型, 且泛型继承于指定的类 /// <summary> /// 从数据库填写业务表到获取题的已填选项 /// </summary> /// <typeparam name="TSource">NiToptics 泛型</typeparam> /// <param name="niToptics"></param>