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

java.util。java中堆栈与自身堆栈类的冲突

葛书
2023-03-14

谁能给我举个例子吗,

如果您想在自己的代码中使用堆栈类,则需要在创建时完全指定包或更改类的名称;否则,您可能会与java.util.package中的堆栈发生冲突

它来自于“用java思考”……我尝试了一个与java冲突的例子。具有自己的堆栈类的util堆栈类。一切都很好。谁能给我举个碰撞的例子吗。

共有2个答案

邹野
2023-03-14

我相信这本书试图区分涉及三个类的java.util.Stackmy.pack.Stack和(对于本例)my.pack.FredFred类中有三个Stacks,

package my.pack;
// import java.util.Stack; // <-- a collision...

public class Fred {
  public static void main(String[] args) {
    my.pack.Stack<?> myStack = new my.pack.Stack<>();
    java.util.Stack<?> utilStack = new java.util.Stack<>();
    Stack<?> collision = new Stack<>(); // <-- The collision.
  }
}
沙富
2023-03-14

如果您在包中创建一个Stack.java文件(例如com.example.app):

public class Stack{}

然后从另一个文件main如果您想同时使用java.util.Stack和您自己的类,您将在导入或使用中出现一个模糊的引用错误:

import java.util.Stack;
import com.example.app.Stack;

public class Main{

    Stack stack;
}

如果您真的想在main文件中使用它们,您可以将歧义解决为:

java.util.Stack javaStack;
com.example.app.Stack myStack;
 类似资料:
  • 问题内容: 每当加载一个类时,什么存储在堆中以及什么存储在堆栈中? 线程也驻留在哪里? 问题答案: 引用类型在堆中。 任何原始类型的数据和对堆上值(方法的参数/局部变量)的引用都在堆栈上。 每个线程都有自己的堆栈。 应用程序中的所有线程共享同一堆。

  • 简介 堆和栈是计算机里面最基本的概念,不过如果一直使用高级语言如 Python/Ruby/PHP/Java 等之类的语言的话,可能对堆和栈并不怎么理解,当然这里的栈(Stack)并不是数据结构里面的概念,而是计算机对内存的一个抽象。相比而言,C/C++/Rust 这些语言就必须对堆和栈的概念非常了解才能写出正确的程序,之所以有这样的区别是因为它们的内存管理方式不同,Python 之类的语言程序运行

  • 我来自C/C++背景,在这里一个进程内存分为: null 我想把我的注意力集中在这一点上,当我阅读JVM中的堆和堆栈时,我们是在谈论堆栈和堆的概念吗?并且整个JVM的实际内存驻留在堆上(这里指的是堆的C++概念)?

  • 问题内容: 有以下代码: 并有输出: 为什么它打印八次而不是“ y”。遇到Java 时如何调用? 问题答案: 在这里您正在捉住,而不是在这种情况下您的程序会崩溃。 如果您尝试此代码(修改为添加静态计数器) 输出量 因此,它已进行了6869次(不同运行次数的更改),并打印了最后一个值。如果您只是像以前那样打印,则可能是输出被缓冲而不被刷新,因为它不是。 更新资料 在内部调用该缓冲。您不会丢失缓冲区中

  • 在这个程序中,我必须打开一个文件并将其打印到文本区域,然后确保所有括号、括号等匹配。如果括号匹配,我将在另一个文本区域中打印出来。我的问题如下:我是从文件中读取还是从第一个文本区域读取?我是在Actionlistener还是在构造函数中创建堆栈?

  • 我有一个用Java定义的,用于在工作流中导航。 我需要能够接受一个字符串,检查堆栈,看看它是否有多个出现,然后弹出元素直到该字符串的“最底部”出现。“截断”对我想做的事情的描述可能很糟糕。“pop直到我命中任意索引”可能更接近我需要的。