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

那是什么 在Java中是什么意思?

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

那是什么  在Java中是什么意思?

没有证据,我相信您在谈论Java的泛型支持…

泛型允许您抽象类型

在Java 5之前,很难提供能够支持多种不同类型的Objects的类而不必为每种特定情况编写代码,因此人们通常

Object
会这样做。

这导致在运行时做出许多困难的选择,您必须进行运行时检查以查看是否有可能将给定的Object强制转换为可用类型…例如

List myIntList = new linkedList(); // 1myIntList.add(new Integer(0)); // 2Integer x = (Integer) myIntList.iterator().next(); // 3

现在,这已经很明显了,但是如果您仅通过

List
,则必须检查列表中的每个元素的正确性…

但是现在,我们可以做到这一点…

List<Integer> myIntList = new linkedList<Integer>(); // 1'myIntList.add(new Integer(0)); // 2'Integer x = myIntList.iterator().next(); // 3'

这是一个合同,基本上说“此列表仅包含整数类型的对象”。

使用泛型,您可以构造一个单一类,该类能够处理多种不同的数据类型或一系列数据类型(即,限制参数,以便必须从特定的父类型扩展它)。

Iterator<? extends Number> itNum;

基本上说,这将包含对象,从继承

Number
,包括
Integer
Long
Double
Float

通常在方法和类的减速中,您会看到类似于…

public class MyGenericClass<T> {...}

要么

public class MyGenericClass<T extends MybaseObject> {...}

这使您可以将其

T
视为具体对象类型来引用,例如…

public class MyGenericClass<T extends MybaseObject> {    private T value;    public MyGenericClass(T value) {        this.value = value;    }}

这允许编译器(和JVM)从本质上

T
用Concert类型“替换”标记(好吧,这要复杂一点,但这就是魔术)…

这样可以做…

... new MyGenericClass<MySuperObject>(new MySuperObject());... new MyGenericClass<MySuperSuperObject>(new MySuperSuperObject());

并且知道它只会接受我指定的对象类型…

请仔细阅读第一段中的链接,我敢肯定它会比我能做到的更多;)



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

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

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