已有101人关注
关于Swing的JDK源码问题
发表在Java图书答疑 2019-07-22 《Java从入门到精通(第4版)》第21章 Swing表格组件
是否精华
版块置顶:

问题一:

JDK源代码中对AbstractTableModel类和DefaultTableModel类分别定义如下:

public abstract class AbstractTableModel implements TableModel, Serializable{...}

public class DefaultTableModel extends AbstractTableModel implements Serializable{...}

父类AbstractTableModel已经实现Serializable接口,为什么子类DefaultTableModel还要显示的实现Serializable接口,子类不是默认会继承Serializable接口吗?


问题二:

JDK源代码中DefaultTableModel类有如下函数:

private static Vector newVector(int size) {
        Vector v = new Vector(size);
        v.setSize(size);
        return v;
    }

这里new Vector(size)时就确定了Vector的容量了,为什么还要setSize(size)来设置Vector大小,多此一举吗?

分享到:
精彩评论 1
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2019-07-22
沙发
  1. 父类实现序列化接口,子类不需再次实现。你说的问题是应该是JDK自身遗留的问题。

  2. setSize()方法是线程安全的,并且可以记录动态数组被操作的次数,但构造方法就没有这两个功能。这应该是开发人员基于对数据安全性、功能完整性的考虑才添加的。

  3. 以上问题已脱离本论坛老师们的工作范围,我们将来可能不提供技术支持。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照