java - 无法访问 ArrayList 内容

标签 java arraylist xstream

我一直在使用 Xsrteam 将 XML 解析为 ArrayList。它有效,但由于某种原因我无法访问数组的内容。

处理 ArrayList 数据的类:

@XStreamAlias("BOARDS")
public class Boards {
    @XStreamImplicit(itemFieldName = "id")
    public ArrayList ids = new ArrayList();

    //region GETTERS-SETTERS
    public void setIds(ArrayList temp){
        this.ids = temp;
    }
    public List getIds(){
        return ids;
    }
//    endregion
}

@XStreamAlias("id")
class Id {

    @XStreamAlias("board")
    private String board;

    @XStreamAlias("description")
    private String description;

    @XStreamAlias("price")
    private String price;

    @XStreamAlias("shape")
    private String shape;

    @XStreamAlias("riding_level")
    private String ridingLevel;

    @XStreamAlias("riding_style")
    private String ridingStyle;

    @XStreamAlias("camber_profile")
    private String camber;

    @XStreamAlias("stance")
    private String stance;

    @XStreamAlias("picture")
    private String picture;

    <<public getters - setters here>>
}

我如何尝试访问这些getter:

Boards boards = (Boards) xstream.fromXML(reader); // parse xml into array list
boards.getIds().get(0).getPrice(); //!!getPrice() cannot be resolved

firstObject first =boards.getIds().get(0);

这是使用调试器的样子:

enter image description here

最佳答案

Boards 具有原始类型,因此不清楚 ArrayList ids 内应包含哪些对象类型。因此,您应该显式转换 boards.getIds().get(0) 的结果:

((Id) boards.getIds().get(0)).getPrice()

或泛化Boards类:

public class Boards<E> {

    public List<E> ids = new ArrayList<E>();

    //region GETTERS-SETTERS
    public void setIds(ArrayList<E> temp){
        this.ids = temp;
    }
    public List<E> getIds(){
        return ids;
    }
//    endregion
}

您可以阅读有关泛型的信息 here

关于java - 无法访问 ArrayList 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758227/

相关文章:

java - 如何将 map 转换为 XML

java.net.UnknownHostException 与 Android 应用程序

java - 检查对象的结果是否不为空然后转换为 boolean 值并在 Java 中设置的简短版本

java - 理解servlet中的方法调用

Java 算法 - 与 ArrayList 的合并排序

java - 如何编写自定义标签来读取和打印数组列表?

java - java 包含特定字符的字符串数组列表

java - 如何确定当前运行的Play版本?

java - 如何在没有类文件的情况下从序列化的 Java 对象中检索对象状态

java - 使用 Xstream 将具有对象列表的 XML 解析为 javaobject