java重要技术(19)泛型之泛型的使用方法

     2022-03-16     773

关键词:

1.1. 泛型的用法

参数化类型比如Sample<T>中的类型参数T可以用于构造函数的参数的类型,方法的返回值的类型,画着方法的参数的类型,属性字段的类型等。

public class GenericParameterTest {

 

//参数化类型T,可以为String,Integer等引用类型。

static class  Sample<T> {

public Sample(T obj){

this.obj = obj;

}

 

//参数化类型作为返回值的类型。

public T work(){

System.out.println("work:"+this.obj);

return this.obj;

}

 

//参数化类型作为参数的类型。

public void update(T obj){

this.obj = obj;

}

 

 

//参数化类型作为属性的类型。

private T  obj;

 

}

 

public static void main(String[] args) {

 

//正确用法。T是String。

Sample<String>  sample = new Sample<String>("Hello");

String obj = sample.work();

sample.update("world");

obj = sample.work();

System.out.println(obj);

 

//语法错误。错误用法。

//Sample<int>  anotherSample = new Sample<int>(1);

 

//正确用法。T是Integer.

Sample<Integer> anotherSample = new Sample<Integer>(1);

 

 

}

 

 

 

 

运行结果如下:

work:Hello

work:world

world

 

java泛型之泛型通配符具体是啥作用?

...bject类型的对象被添加到了List中,破坏了类型安全。参考技术A占位作用,问号?(代表若干个类型)作为参数追问为什么第一个也是泛型通配符预定义,实际传入时再确定就可以,第二种就不行了呢?不就是多层数据结构吗?怎么就编... 查看详情

java基础--泛型之泛型参数

泛型机制常用的参数有3个:“?”代表任意类型。如果只指定了<?>,而没有extends,则默认是允许任意类。extends关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或者是此类型的子类。super关键字声明了... 查看详情

java之泛型

1、为什么要有泛型Generic?2、总结Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,泛型信息不... 查看详情

java重要技术(24)泛型之使用反射访问参数化类型

 1.1. 用反射访问参数化类型 使用反射机制可以获取到一部分参数化类型有关的信息。publicclassGenericParameterTest5{staticclassBase{}staticclassGeneric<TextendsBase>{publicTwork(List<T>list){returnlist.get(0);}publ 查看详情

java基础之泛型的使用

为什么要使用泛型首先我们先来看一段演示代码,如下所示,1publicstaticvoidmain(String[]args){2Listlist=newArrayList();3list.add("abc");4list.add(123);5list.add(HashMap.class);67System.out.println(list.get(0));8}第2行,List里面的内容类型是Obj 查看详情

java之泛型

泛型的理解:泛型示例:泛型语法:泛型注意事项自定义泛型例如:自定义泛型接口泛型方法普通类中定义泛型方法:没有<T,R…>不是泛型方法,而是方法使用了泛型习题:泛型的继承和通配符ÿ... 查看详情

java进阶之泛型

泛型的优点泛型类型可以提高可靠性和可读性泛型可以参数化类型泛型可以让我们在编译时而不是在运行时检测出错误泛型类或方法允许用户指定可以和这些类或方法一起工作的对象类型(相容的对象)泛型类ArrayList、泛型接口... 查看详情

clr类型设计之泛型

...一些底层封装,前几天读了一篇文章,如何选择网络上的技术文章,因为现在关于技术的文章可以说非常多,但是时间是有限的 查看详情

java重要技术(23)泛型之问号通配符

1.1. 问号通配符在类型参数中使用问号通配符,可以有三种不同的用法:(1)Generic<?>表示类型参数为任意对象类型。(2)Generic<?extendsB>表示类型参数为B或者B的派生类。(3)Generic<?superB>表示类型参数为B或者B的父类。&n... 查看详情

十:java之泛型

【定义】一、泛型的定义主要有下面两种:    在程序编码中一些包括类型參数的类型,也就是说泛型的參数仅仅能够代表类。不能代表个别对象。(这是当今较常见的定义)在程序编码中一些包括參数的类。其參... 查看详情

java遗珠之泛型的作用(代码片段)

泛型总共有三个作用编译时进行更强大的类型检查编译时错误比运行时错误更好发现和处理消除类型转换Listlist=newArrayList();list.add("hello");Strings=(String)list.get(0);使用泛型之后去掉转换List<String>list=newArrayList<Str... 查看详情

java重要技术(21)泛型之参数化类型的特点(续)

1.1. 参数化类型的特点2 类型参数不同但是存在继承关系的两个参数化类型,仍然不能混用。类型参数的继承关系不能推导出参数化类型具有继承关系。publicclassGenericParameterTest2{staticclassBase{}staticclassDerivedextendsBase{}staticclas... 查看详情

java重要技术(22)泛型之参数化类型的本质

1.1. 参数化类型的本质Java参数化类型相对于C++的参数化类型而言,有本质区别。前者只是编译器的类型检查的一种手段,而后者则是真正的不利于原始类型的新的类型。 publicclassGenericParameterTest3{staticclassHello{}staticclassWorld... 查看详情

java重要技术(20)泛型之参数化类型的特点

1.1. 参数化类型的特点参数化类型有以下特点:(1)参数化类型和没有类型参数的原始类型在编译后没有本质区别。(2)类型参数不同的两个参数化类型,不能混用。 publicclassGenericParameterTest{//参数化类型T,可以为String,Integer... 查看详情

2022-08-01java之泛型枚举多线程

(目录)一、泛型1.什么是泛型泛型是JavaSE5出现的新特性,泛型的本质是类型参数化或参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。2.泛型的意义一般的类和方法,只能使用具体... 查看详情

java泛型之类型擦除

类型擦除学过C++模板的,在使用Java泛型的时候,会感觉到有点不疑问,例如:(1)无法定义一个泛型数组、无法调用泛型参数对象中对应的方法(当然,通过extends关键字是可以做到,只是比较麻烦);(2)ArrayList<Integer>... 查看详情

java基础之泛型(代码片段)

泛型genericity格式:<自定义泛型无意义大写英文字母占位符>例:<T>Type<E>Element<K>Key<V>value泛型可以在方法,类,接口中使用泛型在方法中使用使用静态方法的泛型格式:publicstatic<T>返回值类型[自定义... 查看详情

java基础知识(java之泛型)

   什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的... 查看详情