精华内容
下载资源
问答
  • 泛型接口
    2022-05-06 10:03:49

    1.泛型类

    public class 类名 <T> {}:这里的T为随意的大写字母,常用的有E,V,T等;

    2.泛型接口

    public interface 接口名 <T> {} : 实现泛型接口要用泛型类。

    3.泛型方法

    public <T> 返回值类型 方法名 (T t){ }:泛型方法不要求在泛型类或者泛型接口中。

    更多相关内容
  • 1, 泛型接口的协变 如果泛型类型用out关键字标注,泛型接口就是协变的。这也意味着返回类型只能是T。 泛型接口的抗变 如果泛型类型用in关键字标注,泛型接口就是抗变的。这样,接口只能把泛型类型T用作其方法的输入...
  • 主要给大家介绍了关于.NET/C#如何判断某个类是否是泛型类型或泛型接口的子类型的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
  • 泛型泛型类封装不是特定于具体数据类型的操作。泛型类最常用于集合,如链接列表、哈希表、堆栈、队列、树等。像从集合中添加和移除项这样的操作都以大体上相同的方式执行,与所存储数据的类型无关。 对于大多数...
  • 主要介绍了Java定义泛型接口和类的方法,结合实例形式分析了泛型相关概念、原理及泛型接口与类的定义实现方法,需要的朋友可以参考下
  • 泛型接口

    2019-05-11 20:24:14
    那么泛型也不例外,泛型同样有接口,那么泛型接口是什么呢、泛型接口如何定义呢以及泛型接口有什么作用呢?我们再次带着这些问题来讲解泛型的第二篇章:泛型接口 一、泛型接口如何定义 泛型接口的定义和泛型类的...

    前面泛型类我们详细的讲解了什么是泛型类以及泛型类的使用。但是大家都知道,Java中除了类还有接口。那么泛型也不例外,泛型同样有接口,那么泛型接口是什么呢、泛型接口如何定义呢以及泛型接口有什么作用呢?我们再次带着这些问题来讲解泛型的第二篇章:泛型接口

    一、泛型接口如何定义

    泛型接口的定义和泛型类的定义一样,区别就在于一个是接口需要实现各个接口方法,一个是类,需要实现对应的抽象方法。

    /**
    
    * 创建时间:2019/5/3
    
    * 创建人:czf
    
    * 功能描述:这是一个单泛型参数的泛型接口,泛型接口和泛型类一样都是可以有多个泛型参数的。具体的参数类型在具体使用时绑定
    
    * 定义一个泛型接口语法如下:
    
    * 接口名<泛型参数、泛型参数...>{
    
    *
    
    * }
    
    **/
    
    public interface AdapterItemListener<T> {
    
    
    
    void onItemClick(int position,T item);
    
    
    
    void onLongItemClick(int position, T item);
    
    
    
    }

    二、什么是泛型接口

    泛型接口就是接口函数与数据类型间接解绑的接口。什么意思呢,这里我们通过在开发中具体的例子来讲解。我们在日常开发中最常见的就是RecyclerView列表的展示,但是RecyclerView自身又没有像ListView那样为我们提供设置item点击的监听。这个时候就需要我们自己来实现item点击的监听。但是每个列表的数据结构都不同,难道每有一个列表我们就要创建一个对应的Listener接口吗?答案肯定是否定了,这里的解决方案就是我们只需要创建一个泛型接口,那么到底如何实现呢?撸代码告诉你:

    /**
    
    * 这里我们在使用时通过定义来进行泛型参数与具体数据类型的绑定,然后我们只需要在Adapter中添加设置监听的方法即可,完美实现一个接口能够对不同数据结构的列表的监听
    
    */
    
    AdapterItemListener<TopBean> itemListener = new AdapterItemListener<TopBean>() {
    
    @Override
    
    public void onItemClick(int position, TopBean item) {
    
    
    
    }
    
    
    
    @Override
    
    public void onLongItemClick(int position, TopBean item) {
    
    
    
    }
    
    };
    
    RecyclerAdapter recyclerAdapter = new RecyclerAdapter();//这是我们用来展示数据列表的Adapter适配器
    
    recyclerAdapter.setTopBeanItemListener(itemListener);//setTopBeanItemListener方法的参数是AdapterItemListener<TopBean> 
    /**
    *实现接口,并于String数据类型绑定
    */
    AdapterItemListener<String> itemListener2 = new AdapterItemListener<String>() {
    
    @Override
    
    public void onItemClick(int position, String item) {
    
    
    
    }
    
    
    
    @Override
    
    public void onLongItemClick(int position, String item) {
    
    
    
    }
    
    };
    
    
    //这里的itemListener2的类型是AdapterItemListener<String>,而Adapter的设置方法setTopBeanItemListener参数类型是AdapterItemListener<TopBean>,俩者不一致所以直接编译错误。
    
    recyclerAdapter.setTopBeanItemListener(itemListener2);
    /**
    *实现接口,并于BaseClass数据类型绑定
    */
    AdapterItemListener<BaseClass> itemListener3 = new AdapterItemListener<BaseClass>() {
    
    @Override
    
    public void onItemClick(int position, BaseClass item) {
    
    }
    
    
    
    @Override
    
    public void onLongItemClick(int position, BaseClass item) {
    
    
    
    }
    
    };
    recyclerAdapter.setBaseClassItemListener(itemListener3);
    
    recyclerAdapter.setBaseClassItemListener(itemListener);//itemListener的类型是AdapterItemListener<TopBean>,这里类型不匹配所以编译错误

    前面我们在讲泛型类的时候有说到泛型类的泛型参数的继承关系不会延续到泛型类中来,泛型接口同样有这个限制。 如上代码所示第二个setBaseClassItemListener方法直接编译错误,虽然TopBean是BaseClass的子类,但是接口 AdapterItemListener<TopBean>和接口AdapterItemListener<BaseClass>没有半点关系。

     

    三、泛型接口的作用

    这里我们只是通过一个最常见的列表单击监听来讲解泛型接口,但是在实际开发中,泛型接口是使用最多的一种。尤其在设计模式、架构设计等方面泛型接口是无可替代的方案。如今最流行的MVP应用架构设计、OkHttp网络框架、RxJava+Retifter+okHttp框架、代理模式等都有泛型接口的身影。在下一篇的MVP模式实战中我们将会看到泛型在架构设计中独一无二的魅力和作用。

     

     

     

    展开全文
  • 泛型接口的定义及泛型接口的使用

    千次阅读 2020-08-15 14:00:26
    泛型接口的定义 package cn.itcast_06; /* *泛型接口:把泛型定义在接口上 */ public interface Interface <T>{ public abstract void show(T t); } 泛型接口的使用 package cn.itcast_06; /* * 实现类...

    泛型接口的定义

    package cn.itcast_06;
    /*
     *泛型接口:把泛型定义在接口上 
     */
    public interface Interface <T>{
              public abstract void show(T t);
    }
    

    泛型接口的使用

    package cn.itcast_06;
    /*
     * 实现类在实现接口的时候:
     * 有两种情况
     * 
     * 第一种情况:已经知道是什么类型的
     */
    public class Interface实现类 implements Interface<String> {
    	@Override
    	public void show(String t) {
    		System.out.println(t);	
    	}
    }
    /*
     * 第二种情况:还不知道是什么类型
     */
    public class InterInterface实现类<T> implements Interface<T> {
    
    	@Override
    	public void show(T t) {
    		// TODO Auto-generated method stub
    		
    	}
    }
    
    展开全文
  • Java中泛型接口

    千次阅读 2021-02-27 08:08:03
    一:泛型接口先给大家普及一个概念(在后面的也会有),其实在以后的开发中我们开发一个项目最基本的目的是将数据库中的数据显示到客户端或者客户端可以将数据录入数据库实现数据的交互,那么数据库分为关系型数据库...

    一:泛型接口

    先给大家普及一个概念(在后面的也会有),其实在以后的开发中我们开发一个项目最基本的目的是将数据库中的数据显示到客户端或者客户端可以将数据录入数据库实现数据的交互,那么数据库分为关系型数据库(比如mysql)和非关系型数据库(redis), 关系型数据库是由表组成的,一张数据表一.般保存一类信息,那么张数据表在Java中就对应一个简单Java类(vo类),而且我们会定义一个接口来规范操作这张数据表的实现类开发。

    DEMO:观察代码

    6991e7ea6cff5a7d5c691aee62f45a77.png

    2c67f0b783053ecc83d2d1ff02998257.png

    4e47cee118f70e5b1f5a19230c9a5336.png

    以上定义了一个操作部门数据的接口,如果要操作雇员信息的应该再为雇员定义一个接口

    DEMO:操作雇员信息的接口

    9ec3ac6f3fbd263caa376a55aba4334b.png

    396835cd9c29ea11cd93767b5f0802bf.png

    发现了以上的只有接口的名称以及每个方法的参数类型不- -样,方法的名称以及形式都是一样的,如果有一百张数据表就意味着要定义一百个这样的接口。此时就出现了代码重复的现象,最好的做法是使用一个接口实现多张数据表的数据操作。要实现这样的操作需要使用泛型接口。之前每个接口只能操作- -种类型的数据,现在使用泛型接口之后,把要操作的数据类型使用占位符标记,具体使用接口的时候再根据需求指定泛型的类型。

    DEMO:定义泛型接口

    235845609f0e345d45a3c07b86a5f021.png

    e9df5891e73def1cbc01d954351bb10d.png

    DEMO:在实现类中指定泛型类型

    115ef040c90d12fc89e18373ad1bff63.png

    eee206a445e7624e5e6b9f54576ee003.png

    628a5ea77241f8d154fd47b184d2d081.png

    e5ab6ba79e738acf5be3db171fb90e4e.png

    70e93f837b59b3f97da90dfa51371cb1.png

    DEMO:在实现类中继续使用泛型,之后再实例化实现类对象的时候才指定具体的占位符的类型

    3a184b2dbbfd3109c1ca99e49b5c7f9b.png

    b6736a13cea761fbbccbf2712251a4c2.png

    71af04d9776e46f4c95a094854110f07.png

    f97d6455f53f7d97f9fe21464ab35f90.png

    其实上在实现类的时候指定出具体的泛型就够了,以上的做法是为了给大家描述出泛型接口的使用另外的方式。

    DEMO:在接口继承接口的时候指定出具体的泛型类型

    以上我们直接使用实现类去实现IBaseDAO,其实上IBaseDAO接口是一个父接口( 公共的接口),那么如果实现类需要有自己特有的方法(还要扩充新的方法),那么还是离不开子接口,所以我们还要使用子接口去继承父接口(IBaseDAO)

    621c890053f86bf23b74b4cee636c7c5.png

    916480d4631f13adae27aeb58125da97.png

    fdb3418103383de27668a8e5c38de53c.png

    e9808e7cb1c9447c7d68e233aada5cbd.png

    总结:

    1、在定义一个接口的时候如果某些类型不能确定,那么就使用占位符标记,在具体使用的时候再指定泛型的类型。

    2、接口的泛型常用的使用方式:

    直接在实现类中指定泛型的具体类型

    在实现类中继续使用泛型,在实例化实现类对象的时候指定泛型的具体类型

    在接口继承接口中指定泛型的具体类型。

    有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

    欢迎关注微信公众号:码邦主

    展开全文
  • 泛型接口作用与定义

    2022-05-04 20:38:25
    泛型接口的定义,与怎么使用。
  • Java泛型接口

    2022-01-26 08:50:37
    泛型接口 public interface GenericInterface<T> { void show(T t); } 泛型接口的实现类 //实现类 public class GenericImpl<T> implements GenericInterface<T> { @Override public void ...
  • Java系列之:泛型类、泛型方法、泛型接口一、泛型二、泛型类三、泛型方法四、泛型接口五、类型通配符 一、泛型 泛型:本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。将类型由原来的具体的类型参数...
  • Java之泛型接口

    2021-06-05 17:24:23
    泛型接口 泛型接口和普通接口类型,定义的抽象方法没有方法体,也通常会把public abstract省略,定义常量也通常会省略public final static 泛型接口 /** * 泛型接口 * 语法:接口名<T> * 注意:不能泛型...
  • Java泛型
  • 泛型——泛型接口

    2021-07-18 20:56:56
    泛型接口 如果实现类实现泛型接口,接口未传入实际泛型时,实现类声明的时候也需要将泛型声明到类中 interface IB<T> { T test(T t); } /** * 未传入泛型实参时,与泛型类的定义相同,在声明类的时候,...
  • 这种参数类型可以用在类、方法和接口中,分别被称为泛型类、泛指方法、泛指接口泛型定义格式: - <类型>:指定一种类型的格式。这里的类型可以看成是形参 - <类型1,类型2…>:指定多类型的格
  • 泛型接口 在JDK1.5之后,不仅可以声明泛型类,也可以声明泛型接口,声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上<T>, 格式如下: [访问权限] interface 接口名称<泛型标识>{ } ...
  • java 泛型接口

    2021-03-22 14:53:20
    介绍了两种继承泛型接口的方法,一般使用方法二,两种方法都可以使用。方法一:/*泛型接口的使用*/interface Info{ //在接口上定义泛型public T getVar();}class InfoImpl implements Info{//定义泛型接口的子类...
  • 泛型接口的定义方法分享
  • 泛型类和泛型接口_Java语言程6.7.1 泛型类和泛型接口在Java SE5.0之前没有泛型的情况下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求...
  • 泛型类可以继承泛型接口 abstract class Cls1<T> { T a; public Cls1(T a){ this.a = a; } public T getData(){ return a; } abstract void printInfo(); } // //class Cls2 //{ //
  • ts中的泛型接口

    千次阅读 2022-01-04 11:21:20
    在ts中常常会用接口来定义对象的类型, 用来规定对象中应该存在哪些属性, 这些属性是什么类型, 但是某些情况下, 我不希望对象中属性的类型固定, 而是我传入什么类型, 属性就是什么类型 , 此时就需要使用泛型接口 . ...
  • ts泛型接口

    2021-11-22 22:37:54
    interface iPerson<T1=string,T2=number>{ name:T1 age:T2 } const p:iPerson={ name:"why", age:18 }
  • 摘要:C#源码,文件操作,TInterface,创建泛型接口 C#创建或使用一个 TInterface泛型接口的源码实例,大致实现的思路:创建一个泛型接口public interface IGenericInterface,接口中调用CreateInstance方法,实现上面...
  • 12-TypeScript泛型接口

    2021-08-03 13:44:30
    上一节说了泛型类, 这一节说一下泛型接口, 举例 // 第一种泛型接口写法 interface MyDate { <T>(value: T): T; } let date: MyDate = function getDate<T>(value: T) { return value; } let value...
  • 1. 概述 泛型,即参数化类型。一提到参数,最熟悉的就是定义方法是...也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。 2.
  • 泛型接口: 定义格式: interface 接口名<自定义泛型> { } 泛型接口注意事项: 1、接口上自定义泛型的具体数据类型是在实现接口的时候指定的; 2、在接口上自定义的泛型,如果在实现接口的时候,...
  • 泛型Java 泛型Java 泛型是什么泛型类泛型类的格式泛型类举例泛型方法泛型方法的格式泛型方法举例泛型接口泛型接口的格式泛型接口举例 Java 泛型 Java 泛型是什么 官方定义: 泛型是Java SE 1.5的新特性,泛型的本质...
  • 这篇文章总结一下Java中的泛型相关知识点,包括:泛型概念、泛型优缺点、泛型通配符、泛型上下界、泛型使用(泛型类、泛型接口、泛型方法)、泛型擦除等内容。 一、泛型概念 (1)什么是泛型 什么是泛型??? ...
  • 跟汤老师学Java笔记:泛型接口 完成:第一遍 1.什么是泛型接口? 泛型接口:表示接口中有一个未知的类型 定义方式: public interface 接口名<T>{} 可以在接口内部使用T,表示一个对象的类型 在使用接口时需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 221,679
精华内容 88,671
关键字:

泛型接口

友情链接: python学习.zip