sky5412 2020-05-30 15:34 采纳率: 0%
浏览 216
已采纳

Object类强制转换时出现java.lang.ClassCastException: elective.system.Administrator cannot be cast to elective.system.Student错误

1.进行学生的帐号注册和登录时会出现标题的错误,可是我强制转换时,并不是从Administrator转换为Student类,而是从Object类强制转换为Student类
2.这是Student类的代码

package elective.system;

import java.io.Serializable;

/*
学生类
 */
public class Student implements Serializable {
    private static final long serialVersionUID = 5816167009388425995L;
    private String number;          //账号
    private String passWord;        //密码

    public Student(String number, String passWord) {
        this.number = number;
        this.passWord = passWord;
    }

    public Student() {
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    //选择选修课程
    public boolean select_class(){
        return true;
    }

    //查看自己所选课程
    public void look_class(){

    }

    //查找课程
    public void seek_class(){

    }
}

这是文件读取和保存的类

package elective.system;

import java.io.*;
import java.util.ArrayList;

/*
文件操作类
 */
public class OperateFile implements Serializable{

    public boolean save(Object e, File file, Boolean flag2) throws Exception{                         // 保存对象
        boolean flag = false ;                                                // 定义操作标志位
        FileOutputStream fos = new FileOutputStream(file,flag2);       //采用追加方式写入数据
        if(file.length()<1){
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(e);
            flag = true;
            oos.close();
        }else{
            MyObjectOutputStream mos = new MyObjectOutputStream(fos);
            mos.writeObject(e);
            flag = true;
            mos.close();
        }
        return flag ;
    }
    public ArrayList load(File file) throws Exception{                          // 读取对象
        ArrayList<Object> list = new ArrayList();
        FileInputStream fis = new FileInputStream(file);
        ObjectInputStream ois = new ObjectInputStream(fis);
        while(fis.available()>0){
            Object p =  ois.readObject();
            list.add(p);
        }
        ois.close();
        return list;
    }
}
class MyObjectOutputStream  extends ObjectOutputStream{

    public MyObjectOutputStream(OutputStream out) throws IOException {
        super(out);
    }

    public void writeStreamHeader() throws IOException{
        return;
    }
}

这是注册和登录的方法

public boolean enter2(String number, String passWord,String pathName) throws Exception {
        File file = new File(pathName);
        OperateFile operateFile = new OperateFile();
        ArrayList<Object> list =  operateFile.load(file);
        for (Object ot:list) {
            Student ar = (Student) ot;
            if(ar.getNumber().equals(number)&&ar.getPassWord().equals(passWord)){
                return true;
            }
        }
        return false;
    }

        public boolean sign2(String number,String passWord,String pathName) throws Exception {
        File file = new File(pathName);
        OperateFile operateFile = new OperateFile();
        ArrayList<Object> list =  operateFile.load(file);
        for(Object ot : list){
            Student ar = (Student) ot;
            if(ar.getNumber().equals(number)){
                return false;
            }
        }
        Object ar = new Student(number, passWord);
        operateFile.save(ar,file,true);
        return true;
    }

请问大佬们这到底是为什么啊

  • 写回答

2条回答 默认 最新

  • qw320826qw 2020-06-01 17:50
    关注

    建议看一下读取文件时的路径是否正确,可以debug下operateFile.load(file);的返回值,确认返回的是什么对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 11月16日

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛