java.lang.ClassCastException尝试打印或引用int []和存储类中的int

时间:2019-02-13 02:45:32

标签: java data-structures classcastexception

我有一个类似数据库的简单项目,该项目旨在将用户名和加密密码放入HashMap中,并在单独的HashMap中将用户名和存储对象(称为{{1} }),其中包含一个整数数组(加密库将其用作密钥)和一个也由该库使用的整数。这一切都很好,但是问题出在代码的辅助功能上。我有几种专用于将PasswordData复制到文件中的方法,以后可以读取这些文件,并且可以在HashMap中恢复文件内的信息。但是,在尝试对HashMap内部的变量执行任何操作时,出现以下异常:

  

线程“ main”中的异常java.lang.ClassCastException:java.lang.String无法转换为webappserver.PasswordData”。

我发现,无论我试图使用所述变量做什么,JVM都声称我正在尝试将存储类转换为String。如果我缺少任何重要信息,请告知我,我将尝试编辑可能需要的任何内容。

存储类:

PasswordData

增强方法

public class PasswordData{
    public int[] key;
    public int  index;
    PasswordData(int[] key, int index){
        this.key = key;
        this.index = index;
    }
    public int[] returnKey(){
        return key;
    }
    public int returnIndex(){
        return index;
    }
}

注意:public void writeFilePassData(HashMap passData, String fileName) throws IOException { ArrayList<String> usersArrayList = new ArrayList<>(passData.keySet()); ArrayList<PasswordData> passwordDataArrayList = new ArrayList<> (passData.values()); BufferedWriter save = new BufferedWriter(new FileWriter(fileName)); for(int i =0; i< usersArrayList .size(); i++){ int[] ex = passwordDataArrayList .get(i).returnKey(); save.write(usersArrayList .get(i) + '\n'); save.write(ex.toString()); save.write(passwordDataArrayList .get(i).returnIndex().toString()); } save.close(); } 将for语句的第一行标记为printStackTrace的位置,但是删除它只会导致第二条语句现在修改为ClassCastException并返回相同的内容错误。

0 个答案:

没有答案