您好,我正在为一个学校项目制作一个纸牌游戏,我正在使用“牌组” vector 来包含它的 Card 类的实例。我的问题是,我们正在使用一个完全过时的编译器,该编译器来自一家不再支持该产品的公司,因此许多完全合法的 java 语句返回错误。
但是将 vector 转换为“Card”类型不适用于 <> 表示法
Card drawCard = new Card ();
drawCard = (Card) deck1.get (0);
drawCard.draw (g);
被编译器接受。我无法使用此方法来更改类变量,所以我想做这样的事情
(Card)deck1.get (a).setY (32);
但这也行不通。有没有办法直接将 vector 转换为对象而不使用 <> 符号?非常感谢,如果这很难阅读/令人困惑/评估等,我很抱歉。
最佳答案
(Card)deck1.get (a).setY (32)
表示将 setY(32)
的结果转换为 Card
,这是错误的。
使用括号对转换进行分组:
((Card)deck1.get(a)).setY(32);
此外,您可以通过首先将 deck1.get(a)
的结果检索到 Card
变量中来简化代码可读性:
Card card = (Card)deck1.get(a);
card.setY(32);
关于java - Java 中不带 <> 的类型转换 arrayList/Vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24172347/