gpt4 book ai didi

java - 将对象分配给字符串

转载 作者:行者123 更新时间:2023-11-29 03:04:23 25 4
gpt4 key购买 nike

我正在编写一个生成迷宫然后找到路径的程序。我将我所有的 Action 存储到一个名为 visitStack 的堆栈中(如果我向北移动,我将“N”存储到其中,如果向东北移动,则将“NE”存储到其中,等等)。对于回溯的一部分,我需要能够从堆栈中获取数据并在遇到死胡同时反转我的步骤,但我在这里遇到了障碍。

我需要将从堆栈弹出的值分配给 String 变量,但我总是遇到编译器错误。我试过使用toString,将String实例化为一个对象,并将弹出的堆栈值作为参数,但仍然无法获取。我已经讨论了大约一个小时。这是代码和错误消息。

String direction = visitStack.pop();

enter image description here

最佳答案

假设您使用的是 java.util.Stack我怀疑您没有描述它应该存储什么类型的元素,这就是编译器看到返回类型为 pop 的原因作为Object (所有类型的共同祖先)。

还假设堆栈应该只存储 String 元素,它应该被声明为

Stack<String> visitStack = new Stack<String>();

现在编译器应该看到 pop() 的返回类型作为String这将允许您将其结果存储在其他 String 中类型引用

String direction = visitStack.pop();

当您确定堆栈只能包含字符串时,上述解决方案是首选,但如果有一些其他元素,您将需要显式地将返回的对象转换为 String (如果你确定它将是 String 的实例)像

String direction = (String) visitStack.pop();

或者如果您不确定将返回什么对象,请调用 toString()获取其字符串表示的方法:

String direction = visitStack.pop().toString();

关于java - 将对象分配给字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32799504/

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