Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何投射两个对象_Java_List - Fatal编程技术网

Java 如何投射两个对象

Java 如何投射两个对象,java,list,Java,List,我是java新手,不知道如何解决这个问题。 我的问题是,我有一个带有麻袋的列表,每个堆栈中都有人,每个人都有一个字符串(名称)。所以列表->堆栈->有名字的人 我的问题是我怎样才能得到这个名字 ((Stack)list.getObject()getObject给我列表中的当前对象(这是可行的),但我不知道名称:((Stack)list.getObject()(Person)Stack.top()。name是一个想法,但它是错误的您的想法是正确的,但语法是错误的。尝试以下方法: Stack sta

我是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;

您的想法正确,但语法错误。请尝试以下方法:

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()).stack).top().Name
另一个选择是:

((Person)((Stack)list.getObject()).top()).Name
然而,这并不是所有的可读性,所以让我们通过我们采取的步骤来分解它:

获取对象:

list.getObject()
将其强制转换为
堆栈
对象:

(Stack)list.getObject()
(Person)((Stack)list.getObject()).top()
调用堆栈上的
top()
(注意最后一个括号,以便我们知道调用它的内容):

将其投射到
个人
对象:

(Stack)list.getObject()
(Person)((Stack)list.getObject()).top()
检索
Name
字段(再次注意更多括号):

现在,关于可读性,我更推荐wassgren的答案,但如果出于某种原因,你必须在线学习,那你就是这么做的。

另一个选择是:

((Person)((Stack)list.getObject()).top()).Name
然而,这并不是所有的可读性,所以让我们通过我们采取的步骤来分解它:

获取对象:

list.getObject()
将其强制转换为
堆栈
对象:

(Stack)list.getObject()
(Person)((Stack)list.getObject()).top()
调用堆栈上的
top()
(注意最后一个括号,以便我们知道调用它的内容):

将其投射到
个人
对象:

(Stack)list.getObject()
(Person)((Stack)list.getObject()).top()
检索
Name
字段(再次注意更多括号):


现在,关于可读性,我更推荐wassgren的答案,但如果出于某种原因,你绝对必须在线讨论这个问题,那就是你的做法。

我更喜欢这个,而不是一行,因为它更容易阅读和遵循,我更喜欢这个,因为它更容易阅读和遵循
操作符所做的优先级高于强制转换运算符。您必须使用parens。请不要破坏该问题。如果要删除它,请执行该操作。
运算符的优先级高于强制转换运算符。您必须使用parens。请不要破坏该问题。如果要删除它,请执行该操作。可能需要查看在你的括号中,你的括号太多了,而且在错误的spotsYup中。刚刚实现。谢谢。但是代码的其余部分没有任何意义。这将永远不会编译更新,现在你修复了它。你可能想再次查看你的括号,你的括号太多了,而且也在错误的spotsYup中。刚刚实现。谢谢。但是剩下的代码没有意义de没有任何意义。那将永远不会编译更新,现在你修复了它,但我必须添加stack((Person)((stack)list.getObject()).stack..top()).name我很困惑-列表中的对象是
堆栈
还是必须从所述对象中检索
.stack
字段?也有效thx:)但是我必须添加stack((Person)((stack)list.getObject()).stack..top()).name我很困惑-列表中的对象是
堆栈
还是必须从所述对象检索
.stack
字段?