gpt4 book ai didi

Java - 为什么静态在这种情况下很重要

转载 作者:行者123 更新时间:2023-12-01 07:03:04 24 4
gpt4 key购买 nike

我有两个与以下代码相关的问题(链接包):

public class LinkedBag<Item> implements Iterable<Item> {

private Node first; // beginning of bag
private int N; // number of elements in bag

private class Node {
private Item item;
private Node next;
}

还有这个

public class Bag<Item> implements Iterable<Item> {
private Node<Item> first; // beginning of bag
private int N; // number of elements in bag

// helper linked list class
private static class Node<Item> {
private Item item;
private Node<Item> next;
}
  1. Node<Item> 之间有什么区别和节点在这里?两种实现都是通用的,那么 Node 和 Node<Item> 如何实现这里有什么不同吗?
  2. 第二个版本中静态的含义是什么,为什么它如此重要? (没有静态就无法编译)。

谢谢!

最佳答案

如果你的嵌套类不是static ,那么它是一个内部类,封闭类的类型参数Item是在范围之内。但是,如果您的嵌套类是 static ,那么封闭类的类型参数不在范围内,因为该类型参数与封闭类的实例有关,而这与 static 无关。嵌套类。

这里,staticNode声明自己的Item类型参数。它可以声明任何其他名称,并且它是等效的。使用 Node<Item> 不应收到编译器错误在你的第二种情况下(使用 static 类);这是合法的。

关于Java - 为什么静态在这种情况下很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36069526/

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