Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 ><E>语法在Java中意味着什么?

<E>语法在Java中意味着什么?
EN

Stack Overflow用户
提问于 2013-11-27 16:53:51
回答 3查看 103.3K关注 0票数 56

我很快就在谷歌上搜索了答案,但找不到/想不出准确的搜索参数。

我正在自学Java,但似乎找不到某个语法的含义。

代码语言:javascript
运行
AI代码解释
复制
public class Node<E>{
    E elem;
    Node<E> next, previous;
}

<E>意味着什么?我隐约记得箭头大括号与向量有关,但基于上面的代码,我觉得它与枚举有关。

如有任何协助或澄清,将不胜感激。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-27 16:56:58

这些被称为仿制药

通常,这些允许类型(类和接口)在定义类、接口和方法时成为参数。

使用泛型比使用非泛型代码有许多好处,如Java教程中的如下所示:

  • 在编译时进行更强的类型检查。编译器对泛型代码进行强类型检查,如果代码违反类型安全,则会发出错误。修复编译时错误比修复运行时错误更容易,而运行时错误很难找到。 例如: //没有泛型列表=新的ArrayList();list.add("hello");// With Generics =新的ArrayList();list.add("hello");//不会编译
  • 使程序员能够实现泛型算法。通过使用泛型,程序员可以实现在不同类型集合上工作的通用算法,这些算法可以自定义,并且类型安全,易于阅读。
  • 消除铸型. 例如,以下没有泛型的代码段需要强制转换: List =新的ArrayList();list.add("hello");String s= (String) list.get(0); 当重写使用泛型时,代码不需要强制转换: List = new ArrayList();list.add("hello");String s= list.get(0);// no强制转换
票数 61
EN

Stack Overflow用户

发布于 2018-01-02 09:15:41

这里,<E>表示Node类的类型参数,.The类型参数定义了它可以引用任何类型(例如字符串、整数、Employee等)。Java泛型具有类型参数命名约定,如下所示:

  1. T型
  2. 电子元素
  3. K键
  4. N-数
  5. V值

例如,以下面的场景为例

代码语言:javascript
运行
AI代码解释
复制
public class Node<E>{
   E elem;
   Node<E> next, previous;
}
class Test{
   Node<String> obj = new Node<>();
}

对于上面的场景,Node类'E‘将引用字符串类型,类如下所示

代码语言:javascript
运行
AI代码解释
复制
public class Node<String>{
   String elem;
   Node<String> next,previous;
}

不仅字符串,还可以使用整数、字符、员工等作为类型参数。

您也可以将泛型与接口、方法和构造函数一起使用。

有关泛型的更多信息,请访问以下内容:

https://www.journaldev.com/1663/java-generics-example-method-class-interface https://www.javatpoint.com/generics-in-java

票数 27
EN

Stack Overflow用户

发布于 2013-11-27 16:56:16

这是指示泛型类型的java语法方式。从本质上说,这意味着它可以是一个Node对象,完全可以接受任何类型。

您应该检查,以获得关于java泛型的良好图层。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20255911

复制
相关文章
Java泛型,你了解类型擦除吗?
大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。
Java团长
2018/08/03
2.3K0
Java泛型之类型擦除类型擦除参考资料
学过C++模板的,在使用Java泛型的时候,会感觉到有点不疑问,例如:(1)无法定义一个泛型数组、无法调用泛型参数对象中对应的方法(当然,通过extends关键字是可以做到,只是比较麻烦);(2)ArrayList<Integer>和ArrayList<String>在运行时的类型是相同的。Java中的泛型有这些问题,是它的实现机制决定的,即“类型擦除”。
阿杜
2018/08/06
6280
Java泛型类型擦除问题
以前就了解过Java泛型的实现是不完整的,最近在做一些代码重构的时候遇到一些Java泛型类型擦除的问题,简单的来说,Java泛型中所指定的类型在编译时会将其去除,因此List<String> 和 List 在编译成字节码的时候实际上是一样的。因此java泛型只能做到编译期检查的功能,运行期间就不能保证类型安全。我最近遇到的一个问题如下:
用户7353950
2022/06/23
1.2K0
JAVA泛型与类型擦除
为什么要用T而不是其它字母?事实上是可以任意字符串(如Result< something >),但是为了显得专业,一般约定几个大写字母在不同场景使用。
acupt
2019/08/26
1.8K0
转:Java 泛型,你了解类型擦除吗?
大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。
剑影啸清寒
2019/05/26
1.4K0
带你深挖Java泛型类型擦除以及类型擦除带来的问题
大家都知道,Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,正确理解泛型概念的首要前提是理解类型擦除。Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。
Bug开发工程师
2020/02/13
3.9K1
带你深挖Java泛型类型擦除以及类型擦除带来的问题
带你深挖Java泛型类型擦除以及类型擦除带来的问题
大家都知道,Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,正确理解泛型概念的首要前提是理解类型擦除。Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。
业余草
2020/02/13
1.8K0
Kotlin 泛型之类型擦除
Kotlin 基于 Java 6,因此 Kotlin 天生支持泛型。但是 Kotlin 的泛型有自己的特点。
fengzhizi715
2019/06/11
1.8K0
Java 泛型擦除_泛型和泛型擦除
如果仅凭直觉来看,该程序可能会输出 false 这个结果,但在具体的环境下运行时会输出 true 。这很令人费解,这是为什么呢?
全栈程序员站长
2022/11/01
2.5K0
揭开Java 泛型类型擦除神秘面纱
大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。
Java技术栈
2018/09/29
9810
揭开Java 泛型类型擦除神秘面纱
大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。
java思维导图
2018/10/24
1.3K0
揭开Java 泛型类型擦除神秘面纱
揭开Java 泛型类型擦除神秘面纱
大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。
用户1257393
2018/10/26
1.1K0
Java基础篇:泛型与类型擦除
泛型的本质是 参数化类型,也就是说 将所操作的数据类型 指定为一个参数,在不创建新类的情况下,通过参数来指定所要操作的具体类型(类似于方法中的变量参数,此时类型也定义成参数形式),也就是说,在创建对象或者调用方法的时候才明确下具体的类型。可以在类、接口、方法中使用,分别称为泛型类、泛型接口、泛型方法。
全栈程序员站长
2021/12/23
1.2K0
Java基础篇:泛型与类型擦除
【进阶之路】Java的类型擦除式泛型
Java选择的泛型类型叫做类型擦除式泛型。什么是类型擦除式泛型呢?就是Java语言中的泛型只存在于程序源码之中,在编译后的字节码文件里,则全部泛型都会被替换为原来的原始类型(Raw Type),并且会在相应的地方插入强制转型的代码。
南橘
2022/03/07
1.2K0
【进阶之路】Java的类型擦除式泛型
Java语法糖之泛型与类型擦除
泛型,JDK 1.5新特性,本质是参数化类型(Parametersized Type) 的应用,即所操作的数据类型被指定为一个参数。这种参数类型可用在:
JavaEdge
2021/12/07
5840
Java语法糖之泛型与类型擦除
Java语法糖之泛型与类型擦除
泛型,JDK 1.5新特性,本质是参数化类型(Parametersized Type) 的应用,即所操作的数据类型被指定为一个参数。这种参数类型可用在:
JavaEdge
2018/05/16
1.1K0
Java语法糖之泛型与类型擦除
Java泛型擦除
语法糖只不过是一种程序的表达式,语法糖可以提高程序的可读性,语法糖经过编译后,将会恢复原来的样貌。
shysh95
2021/03/16
7700
Java泛型擦除
【说站】java泛型中类型擦除的转换
2、这个特征被称为类型删除。当泛型被删除时,他有两种转换方法。第一种是,如果泛型没有设置类型上限,泛型将转换为Object类型,第二种是如果设置了类型上限,泛型将转换为其类型上限。
很酷的站长
2022/11/23
1.3K0
【说站】java泛型中类型擦除的转换
泛型(泛型擦除)【java基础—-泛型】
Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter),这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
全栈程序员站长
2022/11/02
2.9K0
泛型(泛型擦除)【java基础—-泛型】
初探Java类型擦除
本篇博客主要介绍了Java类型擦除的定义,详细的介绍了类型擦除在Java中所出现的场景。
SH的全栈笔记
2019/10/20
8990

相似问题

Java泛型类型擦除?

40

java泛型类型擦除

21

Java泛型类型擦除

11

Java泛型的类型擦除会导致全类型铸造吗?

44

Java泛型和类型擦除

51
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档