首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java嵌套泛型:形参类型应该是什么?

Java嵌套泛型中的形参类型应该是泛型类型。在Java中,泛型是一种参数化类型的机制,它允许我们在定义类、接口或方法时使用类型参数,以便在使用时指定具体的类型。嵌套泛型是指在泛型中再次使用泛型作为参数。

形参类型的选择取决于具体的需求和设计。在嵌套泛型中,形参类型可以是任何合法的Java类型,包括基本类型、类、接口、数组等。常见的形参类型包括但不限于:

  1. 类型参数:可以使用任何合法的类型参数作为形参类型。例如,可以使用T、E、K等字母表示类型参数。
  2. 具体类型:可以使用具体的类、接口或数组类型作为形参类型。例如,可以使用String、Integer、List等作为形参类型。
  3. 嵌套泛型:可以使用嵌套的泛型作为形参类型。例如,可以使用List<T>、Map<K, V>等作为形参类型。

形参类型的选择应该根据实际需求来确定。需要考虑的因素包括代码的可读性、灵活性、扩展性等。在选择形参类型时,可以根据具体的业务场景和设计要求来决定使用哪种类型。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java是什么

Java (generics)是 JDK 5 中引入的一个新特性, 提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。...的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 Java是伪,这是因为 Java 在编译期间,所有的信息都会被擦掉,这也就是通常所说类型擦除 。...:类、接口、方法。...1.类: //此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示 //在实例化类时,必须指定T的具体类型 public class Generic{ private...表示不确定的 java 类型 T (type) 表示具体的一个 java 类型 K V (key value) 分别代表 java 键值中的 Key Value E (element) 代表 Element

31320

Java背后是什么

Java的应用,让大家更好地理解,以及常说的类型擦除是什么概念,举一个简单的例子,如下: 这里可以看出来在代码编写阶段就已经报错了,不能往string类型的集合中添加int类型的数据...下面我们通过例子来介绍背后数据是什么类型 public class BaseBean { T value; public T getValue() { return...的,但是并不代表BaseBean之间是等量的,在开篇也讲过,如果传入的是什么类型,那么在BaseBean中的getValue返回的类型是什么,因此可以想两个不同的类肯定是不等价的,但是如果我这里写呢...不能作用在类、接口、方法上,只能通过方法传来定义 在BaseBean里面定义了个方法: public void add(Class<?...信息只存在于代码编译阶段,在进入 JVM 之前,与相关的信息会被擦除掉,专业术语叫做类型擦除。 原文参考公众号《Java知音》

22730

Java背后是什么

正文 这篇文章主要讲的内容是java的应用,通过该篇让大家更好地理解,以及面试中经常说的类型擦除是什么概念,今天就带着这几个问题一起看下: 举一个简单的例子: ?...下面我们通过例子来介绍背后数据是什么类型 public class BaseBean { T value; public T getValue() { return...在定义的时候将Common的指向Common1的,可以看到直接提示有问题,这里可以想,虽然Common1是继承自Common的,但是并不代表BaseBean之间是等量的,在开篇也讲过,如果传入的是什么类型...,那么在BaseBean中的getValue返回的类型是什么,因此可以想两个不同的类肯定是不等价的,但是如果我这里写呢: public static void main(String[] args...不能作用在类、接口、方法上,只能通过方法传来定义 在BaseBean里面定义了个方法: public void add(Class<?

40700

Java类型擦除问题

Java类型擦除问题 以前就了解过Java的实现是不完整的,最近在做一些代码重构的时候遇到一些Java类型擦除的问题,简单的来说,Java中所指定的类型在编译时会将其去除,因此List<...因此java只能做到编译期检查的功能,运行期间就不能保证类型安全。...json序列化后的字符串,并提供了方法将string spec 反序列化成相应的类型,比较理想的方式是在反序列化的方法中能够获取到参数类型 T 的实际类型,理论上运行时Spec类型是确定了,因此T也应该是确定的...按照以下尝试 通过((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()获取类型,经过测试是获取不到的...第二种是创建spec的子类中使用这个方法就可以获取类型 @Data public abstract static class AbstractSpec { public String

1K20

JAVA类型擦除

的本质是参数化类型,这种参数类型可以用在类、接口和方法的创建中。...是在JAVA 1.5版本中才引入的,它能和以前的版本兼容的原因是信息只存在于代码编译阶段,在进入 JVM 之前,与相关的信息会被擦除掉,即类型擦除。...通配符 如果在某些场景下我们不关注(或者不那么关注)对象的类型参数,可以使用通配符。...在Java SE 1.5之前,没有的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的...class java.lang.Object */ 通过反射我们在运行时得到了data的类型,发现都是Object,证明代码编译后所谓都没了,这就是擦除。

1.7K40

java typereference_Java | Jackson TypeReference获取类型信息「建议收藏」

本文以Jackson为例介绍TypeReference实现涉及的反序列化,及TypeReference的实现原理。...对于获取类型信息的场景,TypeReference是一个可以参考的通用解决方案。 实例 Jackson ObjectMapper的readValue可以将Json字符串反序列化为Java对象。...’ to ‘java.util.List’, 显然ObjectMapper并不能反序列化为UserResource类型,而是LinkedHashMap类型。...抽象类TypeReference用于通过子类获取完整的类型信息。...Class的genericInfo: 总结Jackson ObjectMapper 提供了TypeReference支持对对象的反序列化; 对于获取类型信息的场景,TypeReference是一个可以参考的通用解决方案

2.2K10

揭开Java 类型擦除神秘面纱

不了解的和很熟悉的同学应该能够答出来,而对有所了解,但是了解不深入的同学可能会答错。 正确答案是 true。 上面的代码中涉及到了,而输出的结果缘由是类型擦除。先好好说说。...是什么的英文是 generics,generic 的意思是通用,而翻译成中文,应该意为广泛,类型。所以就是能广泛适用的类型。...这是因为,信息只存在于代码编译阶段,在进入 JVM 之前,与相关的信息会被擦除掉,专业术语叫做类型擦除。 通俗地讲,类和普通类在 java 虚拟机内是没有什么特别的地方。...Erasure 并不是 Erasure 这种形式,那我们再看看类中 T 的类型在 jvm 中是什么具体类型。...,并不神奇 我们可以看到,其实并没有什么神奇的地方,代码能做的非代码也能做。 而类型擦除,是能够与之前的 java 版本代码兼容共存的原因。

1.3K30

揭开Java 类型擦除神秘面纱

不了解的和很熟悉的同学应该能够答出来,而对有所了解,但是了解不深入的同学可能会答错。 正确答案是 true。 上面的代码中涉及到了,而输出的结果缘由是类型擦除。先好好说说。...是什么的英文是 generics,generic 的意思是通用,而翻译成中文,应该意为广泛,类型。所以就是能广泛适用的类型。...这是因为,信息只存在于代码编译阶段,在进入 JVM 之前,与相关的信息会被擦除掉,专业术语叫做类型擦除。 通俗地讲,类和普通类在 java 虚拟机内是没有什么特别的地方。...Erasure 并不是 Erasure 这种形式,那我们再看看类中 T 的类型在 jvm 中是什么具体类型。...,并不神奇 我们可以看到,其实并没有什么神奇的地方,代码能做的非代码也能做。 而类型擦除,是能够与之前的 java 版本代码兼容共存的原因。

1.1K10

Java基础篇:类型擦除

三、Java类库中的有那些?的用途? (1)类:最常见的用途就是容器类,通过可以完成对一组类的操作对外开放相同的接口。...五、Java的实现方法–类型擦除: Java的实现是靠类型擦除技术实现的,类型擦除是在编译期完成的,也就是在编译期,编译器会将类型参数都擦除成它指定的原始限定类型,如果没有指定的原始限定类型则擦除为...object类型,之后在获取的时候再强制类型转换为对应的类型,因此生成的Java字节码中是不包含中的类型信息的,即运行期间并没有的任何信息。...,传入不同实参的类在内存中只有一个,即还是原来的最基本的类型只在编译阶段有效,在编译过程中,对于正确检验结果后,会将的相关信息擦除,并且在对象进入和离开方法的边界处添加类型检查和类型转化的方法...4、的细节: (1)实际代表什么类型,取决于调用者传入的类型,如果没传,默认是Object类型; (2)使用带的类创建对象时,等式两边指定的类型必须一致。

86621

Java入门(16)-- 枚举类型

在没有出现之前,Java也提供了对Object的引用“任意化”操作,这种“任意化”操作就是对Object引用进行向下转型及向上转型操作,但某些强制类型转换的错误也许不会被编译器捕捉,而在运行后出现异常...限制可用类型 默认可用使用任何类型来实例化一个类对象,但Java中也对类实例的类型作了限制。...package core; import java.util.*; public class LimitClass {//限制类型 public static...使用类型通配符 在机制中,提供了类型通配符,其主要作用是在创建一个类对象时时限制这个类的类型实现或继承某个接口或类的子类。要声明这样一个对象可以使用“?”...类型参数只能是类类型,不可以是简单类型,如A这种定义就是错误的; 2. 类型个数可用是多个; 3. 可以使用extends关键字限制类型; 4.

75730

揭开Java 类型擦除神秘面纱

不了解的和很熟悉的同学应该能够答出来,而对有所了解,但是了解不深入的同学可能会答错。 正确答案是 true。 上面的代码中涉及到了,而输出的结果缘由是类型擦除。先好好说说。...是什么的英文是 generics,generic 的意思是通用,而翻译成中文,应该意为广泛,类型。所以就是能广泛适用的类型。...这是因为,信息只存在于代码编译阶段,在进入 JVM 之前,与相关的信息会被擦除掉,专业术语叫做类型擦除。 通俗地讲,类和普通类在 java 虚拟机内是没有什么特别的地方。...Erasure 并不是 Erasure 这种形式,那我们再看看类中 T 的类型在 jvm 中是什么具体类型。...,并不神奇 我们可以看到,其实并没有什么神奇的地方,代码能做的非代码也能做。 而类型擦除,是能够与之前的 java 版本代码兼容共存的原因。

95840

Java,你了解类型擦除吗?

不了解的和很熟悉的同学应该能够答出来,而对有所了解,但是了解不深入的同学可能会答错。 正确答案是 true。 上面的代码中涉及到了,而输出的结果缘由是类型擦除。先好好说说。...是什么的英文是 generics,generic 的意思是通用,而翻译成中文,应该意为广泛,类型。所以就是能广泛适用的类型。...这是因为,信息只存在于代码编译阶段,在进入 JVM 之前,与相关的信息会被擦除掉,专业术语叫做类型擦除。 通俗地讲,类和普通类在 java 虚拟机内是没有什么特别的地方。...Erasure 并不是 Erasure 这种形式,那我们再看看类中 T 的类型在 jvm 中是什么具体类型。...,并不神奇 我们可以看到,其实并没有什么神奇的地方,代码能做的非代码也能做。 而类型擦除,是能够与之前的 java 版本代码兼容共存的原因。

2.3K20

【说站】java是什么意思?

java是什么意思? 概念 1、是指类型可以作为参数传递,本质上是类型参数。例如,当我们定义一种方法时,我们经常指定将特定类别的物体作为参数传输。...2、如果使用,特定的传输对象可以指定为特定的类型,而不需要指定特定的类型。也就是说,我们把某种类型作为参数传输。...与Object的区别 若使用Object,则必须强制将输入类型转换为所需类型,若输入类型不匹配,则会导致程序包ClassCastException异常。...例如,以下代码,testObj()输入int类型的值,并且程序在执行时会出错: 实例 public void testObj(Object o){     String name= (String) o...; } 以上就是java的介绍,希望对大家有所帮助。

40940
领券