listT 范型

2024-06-22 11:48
文章标签 范型 listt

本文主要是介绍listT 范型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

是java泛型的两种用法:List<T>是泛型方法,List<?>是限制通配符

List<T>一般有两种用途:
1、定义一个通用的泛型方法。
伪代码:

public interface Dao{List<T> getList(){};
}List<String> getStringList(){return dao.getList();//dao是一个实现类实例
}List<Integer> getIntList(){return dao.getList();
}

上面接口的getList方法如果定义成List<?> ,后面就会报错。‘

2、限制方法的参数之间或参数和返回结果之间的关系。

List<T> getList<T param1,T param2>

这样可以限制返回结果的类型以及两个参数的类型一致。

List<?>一般就是在泛型起一个限制作用。
伪代码:

public Class Fruit(){}public Class Apple extends Fruit(){}public void test(? extends Fruit){};test(new Fruit());
test(new Apple());
test(new String()); //这个就会报错
这样可以现在test方法的参数必须是Fruit或其子类。


List<T>一般有两种用途:
1、定义一个通用的泛型方法。
伪代码:

public interface Dao{List<T> getList(){};
}List<String> getStringList(){return dao.getList();//dao是一个实现类实例
}List<Integer> getIntList(){return dao.getList();
}

上面接口的getList方法如果定义成List<?> ,后面就会报错。‘

2、限制方法的参数之间或参数和返回结果之间的关系。

List<T> getList<T param1,T param2>

这样可以限制返回结果的类型以及两个参数的类型一致。

List<?>一般就是在泛型起一个限制作用。
伪代码:

public Class Fruit(){}public Class Apple extends Fruit(){}public void test(? extends Fruit){};test(new Fruit());
test(new Apple());
test(new String()); //这个就会报错
这样可以现在test方法的参数必须是Fruit或其子类。
 

这篇关于listT 范型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084206

相关文章

Kotlin 范型之协变、逆变、不变

一. 前言 Kotlin 中类和类型是不一样的概念。型变是指类型转换后的继承关系。Kotlin 的型变分为逆变、协变和不变。 二. 协变 如果 A 是 B 的子类型,并且Generic<A> 也是 Generic<B> 的子类型,那么 Generic<T> 可以称之为一个协变类。 2.1Java 上界通配符<? extends T> Java 的协变通过上界通配符实现。 如果

.NET中的范型与集合

在学习设计模式的时候,我们用到了范型,在VB.NET机房重构的时候,我们又用到了范型,感觉范型就像一个集合Collections,而且集合ArrayList()非常好用,它可以盛放许多类型的数据(里面涉及到了拆箱与装箱),那么,范型与ArrayList()又有什么渊源哪?下面我讲一下C#中的范型与集合ArrayList()的区别。     一、泛型简介:     泛型(Generic

java 根据 ListT 的属性进行排序

if(infoList.size() > 0){Collections.sort(infoList,new Comparator<UserInfo>(){/** int compare(UserInfo o1, UserInfo o2) 返回一个基本类型的整型,* 返回负数表示:o1 小于o2,* 返回0 表示:o1和o2相等,* 返回正数表示:o1大于o2。*/@Overridepublic i

java判断ListT对象是否唯一、去重复

java中List<T>去重复方法(前提:T对象中需要重写equals方法) /*** List去重复* 需要重写T中的Equals及GetHashCode方法* @param a* @return*/public static <T> List<T> array_unique(List<T> list) {List<T> temp = new LinkedList<T>();for(T

范型编程

范型编程(generic programming,GP) :编写不依赖数据类型的程序,数据类型的参数化。 #include<algorithm> find(iarray,iarray+SIZE,50); find(intVector.begin(),intVector.end(),50); 对于上面的find函数来说,它是algorithm库中的一个函数,其实它是一个算法的实现,它可以针对

C# 对ListT取交集、连集及差集

1.  取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , 9 } List B : { 4 , 3 , 9 } 1 var intersectedList = list1.Intersect(list2); 結果 : { 3 , 9 }   判斷A和B是否有交集   1 bool isInterse

基于Spring的通用范型业务类

我们在做日常开发的时候在写业务的时候都会写常用的增删改查,每个业务对象都要写一遍这是非常繁琐和浪费时间的事情。 在DAO层面Spring 提供了Spring data jpa来帮我们解决这个问题,只需要声明一个接口继承自JpaRepository就能使用spring为我们提供的一些基本的数据库操作方法,但是在Service层怎么办呢? 在spring4之后我们有了解决办法,spring4的依赖

Java范型浅析

从jdk1.5开始,Java中开始支持范型了。范型是一个很有用的编程工具,给我们带来了极大的灵活性。在看了《java核心编程》之后,我小有收获,写出来与大家分享。         所谓范型,我的感觉就是,不用考虑对象的具体类型,就可以对对象进行一定的操作,对任何对象都能进行同样的操作。这就是灵活性之所在。但是,正是因为没有考虑对象的具体类型,因此一般情况下不可以使用对象自带的接口函数,因为不同的对

JAVA1.5范型

本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。 J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步。 J2SE 5.0提供了很多令人激动的特性。这些特性包括范型(generics)的支

Unity jsonUtility序列化ListT,DictionaryT等泛型

原文地址 https://blog.csdn.net/Truck_Truck/article/details/78292390 // Serialization.csusing UnityEngine;using System.Collections;using System.Collections.Generic;using System;// List<T>[Serializabl