gpt4 book ai didi

java - 强制参数化类型作为构造函数参数是正确的

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:26 25 4
gpt4 key购买 nike

我已经为此搜索了很长时间,但没有什么能真正接近我所需要的。

示例代码:

public class MyQueue<E extends Delayed & Serializable> extends DelayQueue<E> {
private Class<E> mClass;
public MyQueue(Class<E> type) {
super();
mClass = type;
}
}

MyQueue 的创建方式如下:MyQueue q<MyObj> = new MyQueue<MyObj>(MyObj.class); .

我的问题:如何以这样的方式编写构造函数,使参数“type”具有正确的参数化类型“E extends Delayed & Serializable”?

我希望我已经解释清楚了。

提前感谢您的帮助。

编辑:起初我无法从答案和评论中选择一个合适的答案。因此,我将第一次尝试用我最初想要的以及现在的结果来强化我的问题。例如,在原始帖子中回答我发现的内容。

显然我需要知道的是构造时参数化类型 E 的类。为了透明,队列使用 E 类名称(即 MyObj)传递到后备存储。大量阅读后,我开始明白,由于类型删除,我无法更轻松地获取这些信息。我被迫不仅将类作为参数化类型传递,而且还作为构造函数变量传递。

我担心我会不小心这样调用构造函数(MyObj 和 OthrObj 都实现了 Delayed & Serializable):

MyQueue q<MyObj> = new MyQueue<MyObj>(OthrObj.Class);

我更好的问题应该是:我如何以这种方式编写构造函数,强制构造函数变量 E 匹配参数化类型 E?

它会更有意义,并且可能会更容易理解我写的内容。从技术上讲,你们中的大多数人在某种意义上是正确的,并且在测试了许多变体之后,我得出的结论是我已经这样做了,所以咯咯地笑着抱歉 seh 和 Tnem 是完全正确的并且都值得赞扬。

最佳答案

你写的就是你指定的,type 参数将被强制为 Delayed & Serializable 类型。我看不出这里有什么问题...

关于java - 强制参数化类型作为构造函数参数是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6019229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com