entry在java的用处_java – 为什么在Entry中需要输入参数?

在java.util.Map中(如下所示),输入参数< K,V>条目是阴影类型参数< K,V>地图.

interface Map {

......

interface Entry {

.....

}

}

来自here的类DblyLinkList具有以下内部类DListNode,其不需要遮蔽类型参数T.

public class DblyLinkList implements Iterable {

.......

class DListNode {

private T item;

private DListNode prev;

private DListNode next;

DListNode(T item, DListNode p, DListNode n) {

this.item = item;

this.prev = p;

this.next = n;

}

}

......

}

你能帮我理解为地图的类型参数蒙上阴影的原因吗?

解决方法:

在类或接口内定义的接口是静态的,这意味着它们无法访问其父类的泛型参数.因此,Entry需要来自其父级的K和V.

相反,DListNode是DblyLinkList< T>的内部类.因此可以访问泛型类型T – 它实际上也包含一个返回其包含类的引用.

注意,如果DListNode被定义为静态类(我将如何定义它),它将不再是内部类,因此无法访问其父类通用参数 – 因此需要DListNode< K,V> ;太.

标签:java,generics

来源: https://codeday.me/bug/20190528/1169248.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值