我是java的新手,我不知道如何解决这个问题。 我的问题是我有一个包含麻袋的清单,每个堆栈里面都有人,而且这些人都是一个字符串(名字)。所以列表 - >重新建立了新>名字的人
我的问题是如何才能得到这个名字?
((Stack)list.getObject()
getObject为我提供了列表中的当前对象(这可行),但我不知道名称:((Stack)list.getObject().(Person)stack.top().Name
是一个想法,但它错了
答案 0 :(得分:4)
你有正确的想法,但错误的语法。试试这个:
Stack stack = (Stack) list.getObject();
Person person = (Person) stack.top();
String name = person.Name;
答案 1 :(得分:0)
您只需要更多括号,但更容易将其放在不同的行中。
((Person)((Stack)list.getObject()).stack).top().Name
答案 2 :(得分:0)
另一种选择是:
((Person)((Stack)list.getObject()).top()).Name
但是,这并不是所有可读的,所以让我们按照我们采取的步骤对其进行细分:
获取对象:
list.getObject()
将其转换为Stack
对象:
(Stack)list.getObject()
在堆栈上调用top()
(请注意最后一个的括号,以便我们知道我们在调用它的时间):
((Stack)list.getObject()).top()
将其转换为Person
对象:
(Person)((Stack)list.getObject()).top()
检索Name
字段(再次注明更多括号):
((Person)((Stack)list.getObject()).top()).Name
现在,至于可读性,我会更推荐wassgren的答案,但如果由于某种原因你绝对必须在线,那就是你如何做到的。