栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java通用方法声明基础

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java通用方法声明基础

问题是您的代码使用相同的字符A,但是在不同的地方有 几个 不同的“含义”:

public class Box<T> {

需要大括号,因为您在这里说:Box使用通用类型,称为T。

*不带花括号的T go的 *用法

private T a;public void setA(T a) {

但是之后

public <T2> List<T2> transform(List<T2> in) {

正在引入 另一个 类型参数。我把它命名为T2,使之清楚,这是 一样的T.的想法是,在 范围 T2的是 唯一的
一个方法

transform
。其他方法不了解T2!

public static <A> A getFirstElement(List<A> list) {

与上述相同-在此处为“ T3” ;-)

编辑您的评论:您不能使用 静态
方法使用类范围的类型T。这根本不可能!见这里为什么是!

编辑二:泛型允许您编写 泛型的 代码(因为它可以处理 不同的 类);但是仍然可以保证 编译时的 安全性。例:

 Box<String> stringBox = new Box<>(); Box<Integer> integerBox = new Box<>(); integerBox.add("string"); // gives a COMPILER error!

在人们拥有泛型之前,他们只能在整个地方处理 Object 。和手动铸造。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454966.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号