java - Java 中不带 <> 的类型转换 arrayList/Vector

标签 java vector arraylist

您好,我正在为一个学校项目制作一个纸牌游戏,我正在使用“牌组” 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/

相关文章:

java - 如何限制ParallelStream中的并行执行数量?

Java 泛型 : Enums and Interfaces

java - 如何使用 Spring Batch 读取简单的 xml 列表?

php - 将元素添加到具有间隙数字键的数组以形成索引数组/列表

java - 保存项目数据。你会怎么做?

java - JPA单向级联操作

c++ - 使用整数参数定义 vector <string> 时 '{' 和 '(' 之间的差异?

c++ - vector<int> 上的 memset

r - 具有多个 NA 的向量的交替元素

java - Java 8 中用于减去列表的减法运算