如何投射两个物体

时间:2015-01-16 19:45:29

标签: java list

我是java的新手,我不知道如何解决这个问题。 我的问题是我有一个包含麻袋的清单,每个堆栈里面都有人,而且这些人都是一个字符串(名字)。所以列表 - >重新建立了新>名字的人

我的问题是如何才能得到这个名字?

((Stack)list.getObject() getObject为我提供了列表中的当前对象(这可行),但我不知道名称:((Stack)list.getObject().(Person)stack.top().Name是一个想法,但它错了

3 个答案:

答案 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的答案,但如果由于某种原因你绝对必须在线,那就是你如何做到的。