【问题标题】:Casting ArrayList class variables for deserialization为反序列化转换 ArrayList 类变量
【发布时间】:2015-03-02 05:58:19
【问题描述】:

我正在尝试反序列化 java 中的单个变量,但是在转换值时似乎遇到了问题:

public void loadGrid(Sudoku testGrid) {
    try {
        FileInputStream fileIn = new FileInputStream(System.getProperty("user.home") + "\\tmp\\grid.grd");
        ObjectInputStream in = new ObjectInputStream(fileIn);
        testGrid.sudokuGrid = (Sudoku.sudokuGrid) in.readObject();
        in.close();
        fileIn.close();
    } catch(IOException i) {
        i.printStackTrace();
    } catch(ClassNotFoundException c) {
        c.printStackTrace();
    }
}

数独是一个包含 ArrayList 变量的 ArrayList 类。 我遇到了:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Sudoku.sudokuGrid cannot be resolved to a type

【问题讨论】:

  • 那么,演员不应该是(List<ArrayList<?>>) in.readObject();这样的东西吗?
  • 您在数独中是否有任何名为 sudokuGrid 的类?
  • 是的,什么是数独网格?类数独中的一个领域?强制转换是类型,而不是变量。你想做什么?
  • SudokuGrid 是变量

标签: java serialization arraylist deserialization


【解决方案1】:

您需要转换为 Sudoku.sudokuGrid 的类型,而不是 sudokuGrid 字段本身:

testGrid.sudokuGrid = (ArrayList<ArrayList<SomeType>>) in.readObject();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2016-03-04
    • 2012-07-24
    相关资源
    最近更新 更多