2016 - 2024

感恩一路有你

java面向对象的理解 java怎么获取一个泛型方法的真实泛型类型?

浏览量:2872 时间:2021-03-27 22:39:03 作者:admin

java怎么获取一个泛型方法的真实泛型类型?

在我看来,从一个方法中获取泛型方法的真正泛型类型是可行的,但是通过一个方法获取泛型方法的真正泛型类型应该是不可能的。

首先,Java中的泛型也称为参数化类型。正确地记住,泛型应该是jdk5引入的特性。泛型的目的是使数据类型能够作为参数传入,以便可以动态更改变量的数据类型。

那么什么是通用方法?泛型类型是在方法上声明的。只有在调用方法时才会传入实类型。如果在方法中得到它,可以直接调用泛型对象的getClass方法。但是如果你想通过一个方法得到一个泛型方法的真正类型,我不认为它可以实现。因为不调用方法时,不会输入实数据类型,因此根本无法获取泛型对应的实类型。

所以我将讨论如何在泛型方法中获得泛型的真实类型。

旧规则,让我们编写一个代码来解释。泛型方法的示例如下图所示:

在上图中,我声明了一个泛型方法:findfirst,用于获取数组的第一个元素。

运行结果如下:

以上是我的答案,希望能对您有所帮助

泛型是1.5引入的一个新概念,因为不需要强制类型,所以它具有很高的安全性和易用性。因为泛型只在编译器中实现,并且虚拟机不识别泛型类项,所以有必要删除虚拟机中的泛型类型。也就是说,泛型在编译阶段使用,而泛型在运行阶段取消,即擦除。擦除是用父类替换泛型类型。例如,字符串成为对象。实际上,仍然使用强制类型的转换,但这是一种相对安全的转换,因为在编译阶段已经确保了数据的一致性。

怎样理解java泛型中的擦除?

总之,回答:Java有很多话要说

!此承诺已写入Java虚拟机规范。为了与Java1.5之前的版本兼容,我们最终选择了这个方案。

尽管兼容解决方案不仅仅是擦除,但这种承诺确实是它没有采用像C#这样的真正通用解决方案的最重要原因。

java面向对象的理解 谈谈你对java的理解 深入理解java泛型详解

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。