如何投射两个物体
How to cast two objects
我是 java 的新人,我不知道如何解决这个问题。
我的问题是我有一个麻袋列表,每个堆栈都有人在里面,这些人是一个字符串(名字)。所以列表 -> 堆栈 -> 姓名为
的人
我的问题是我怎样才能得到这个名字?
((Stack)list.getObject()
getObject 给了我列表中的当前对象(这有效)但我不知道名称:((Stack)list.getObject().(Person)stack.top().Name
是一个想法,但它是错误的
您的想法是正确的,但语法错误。试试这个方法:
Stack stack = (Stack) list.getObject();
Person person = (Person) stack.top();
String name = person.Name;
你只需要更多的括号,但更容易放在不同的行中。
((Person)((Stack)list.getObject()).stack).top().Name
另一种选择是:
((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 的回答,但如果出于某种原因你绝对必须将此问题放在网上,那就是你的做法。
我是 java 的新人,我不知道如何解决这个问题。 我的问题是我有一个麻袋列表,每个堆栈都有人在里面,这些人是一个字符串(名字)。所以列表 -> 堆栈 -> 姓名为
的人我的问题是我怎样才能得到这个名字?
((Stack)list.getObject()
getObject 给了我列表中的当前对象(这有效)但我不知道名称:((Stack)list.getObject().(Person)stack.top().Name
是一个想法,但它是错误的
您的想法是正确的,但语法错误。试试这个方法:
Stack stack = (Stack) list.getObject();
Person person = (Person) stack.top();
String name = person.Name;
你只需要更多的括号,但更容易放在不同的行中。
((Person)((Stack)list.getObject()).stack).top().Name
另一种选择是:
((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 的回答,但如果出于某种原因你绝对必须将此问题放在网上,那就是你的做法。