gpt4 book ai didi

java - 扩展一个类,其中父类的参数扩展了一个类

转载 作者:行者123 更新时间:2023-12-01 13:10:34 25 4
gpt4 key购买 nike

我正在尝试将 TreeMap 的一个版本扩展为子类,以更有效地索引单词,但我不确定正确的语法是什么。树形图的类定义如下所示

public class MyTreeMap<K extends Comparable<? super K>,V> extends AbstractMap<K,V> {

以最直接的方式扩展类

public class TreeMapIndexer<K> extends MyTreeMap<K,LinkedList<Integer>> {

产生错误“绑定(bind)不匹配:类型 K 不是 MyTreeMap 类型的有界参数 > 的有效替代品”。

我试过了

public class TreeMapIndexer<K> extends 
MyTreeMap<K extends Comparable<? super K>, LinkedList<Integer>> {

相反,但这会产生编译器错误“ token “扩展”上的语法错误,预期”。错误的扩展位于“”中。

我发现另一个线程 ( Generic Generics: "Syntax error on token "extends", , expected" ) 具有相同的错误消息。这似乎与我的情况略有不同,但我尝试过

public class TreeMapIndexer<K> extends 
MyTreeMap<K, K extends Comparable<? super K>, LinkedList<Integer>> {

这会产生完全相同的“ token “扩展”上的语法错误,预期”编译器消息。

最佳答案

class MyTreeMap<K extends Comparable<? super K>, V>
extends AbstractMap<K, V>

所以K声明的界限为 extends Comparable<? super K> 。您只需在子类上重新声明相同的绑定(bind)即可。

class TreeMapIndexer<K extends Comparable<? super K>>
extends MyTreeMap<K, LinkedList<Integer>>

否则,您将尝试将子类型声明为没有限制,即编译错误“绑定(bind)不匹配”。

您尝试的几乎是正确的,界限只需要位于泛型类型声明中,而不是参数(传递给父类(super class))。

关于java - 扩展一个类,其中父类的参数扩展了一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22901147/

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