A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Kael 初级黑马   /  2014-5-11 16:29  /  1044 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package exception;

  2. //报感叹号The serializable class MinusException does not declare a static final serialVersionUID field of type long
  3. class MinusException extends RuntimeException {
  4.         MinusException() {
  5.         }

  6.         MinusException(String msg) {
  7.                 super(msg);
  8.         }
  9. }

  10. class Demo {
  11.         public int method(int[] arr, int index) {
  12.                 if (index < 0) {
  13.                         throw new MinusException();
  14.                 }
  15.                 return arr[index];
  16.         }
  17. }

  18. public class ArrayIndexException {

  19.         public static void main(String[] args) {
  20.                 int[] arr = new int[3];
  21.                 Demo d = new Demo();
  22.                 d.method(arr, -20);

  23.         }

  24. }
复制代码

4 个回复

倒序浏览
相当于给Class文件指定一个ID标识。
回复 使用道具 举报
小周务商 发表于 2014-5-11 17:04
相当于给Class文件指定一个ID标识。

意思是在这个类为什么要给标识。其他类不用。
回复 使用道具 举报
Kael 发表于 2014-5-11 18:34
意思是在这个类为什么要给标识。其他类不用。

简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)

你学到序列流的时候就应该知道的吧。比较读取配置文件的时候。
回复 使用道具 举报
楼上说的对啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马