当前位置: 首页 > 知识库问答 >
问题:

为什么内部类抱怨泛型类型?

谯翔
2023-03-14

我有一个实现Iterable的类,以便用户可以使用迭代器。我使用泛型来允许用户使用任何类型并使用该类。

这是下面的工作代码,没有警告-

public class CustomStackUsingArray<Type> implements CustomList<Type>, Iterable<Type> {

    Type []arr;

    public Iterator<Type> iterator() {
        return (new ListIterator());
    }

    private class ListIterator implements Iterator<Type>{
        //Implement Iterator here
    }

    //Implement other methods here
}

但是,如果我将ListIterator定义如下-

private class ListIterator<Type> implements Iterator<Type>

我在 Eclipse 中收到警告,参数 Type 隐藏了类型类型

当我在类后指定泛型类型时,它为什么会抱怨?为了能够在我的类中使用Type,我不应该这样做吗?我在定义CustomStackUsingArray时添加了类型,效果很好。

共有1个答案

爱乐邦
2023-03-14

当你说class Something时

这都是因为你告诉编译器你想创建一个新的泛型类。但你真的不知道。你只需要一个内部类,它是你正在定义的外部泛型类的一部分(我想)。因此,您需要去掉第一个< code >

 类似资料:
  • 请按顺序阅读代码中的注释,问题详细信息在那里<为什么会出现这种差异 如果可能,请引用JLS。 我最初在IntelliJ IDEA中发现了这一点,但我猜编译器与javac兼容,因为当我用以下代码编译上述代码时,它给出了相同的错误/警告。

  • 这可能是一个愚蠢的问题,但是我很惊讶地看到,在外部类中不允许使用私有内部类作为泛型类型。 如果我使内部类受到保护,它编译得很好。 此外,我还必须精确而不仅仅是,否则找不到内部类。这看起来也有点奇怪。 为什么内心不能是私密的?为什么它被允许受到保护? 错误是: 我使用的是JavaSE17,但我认为它并没有太大用处。

  • 问题内容: 游乐场执行失败:MyPlayground.playground:109:22:错误:无效使用’()’调用非函数类型’[ClassA.ClassB.Type]’的值时,让didNotCompile = ClassA.ClassB ^ ~~ 问题答案: 如您所述,它可以使用以下语法: 但是,如果我们声明一个: 因此,我想说这是一个错误,也应该无需输入别名即可工作。 更新 :Apple 已经

  • 问题内容: 具有函数f(x,y,z),我需要求解约束f(x,y,z)= 0,然后对其进行绘制。我试图为每对(y,z)查找f(x,y,z)= 0的值x: Python(2.7.5)说“ TypeError:fsolve:’func’参数’func’的输入和输出形状不匹配。” 但是,如果我自己进行测试,它会具有相同的形状: 返回True。 为什么fsolve()抱怨? 问题答案: 期望参数和的返回值为

  • [Error]org.testng.testngException:无法将@Test annotated方法[testLoginPage]与[interface java.util.Map]插入。有关本机依赖项注入的更多信息,请参阅http://testng.org/doc/documentation-main.html#native-dependent ency-injection at org