我正在尝试向我的类(CustomList
扩展为)添加功能JList
。现在,CustomList的所有当前用法都setModel(Listmodel<E> lm)
从中调用了不可重写的方法JList
。我被困在Java的旧版本Java 1.6上,由于擦除问题,该版本不允许我直接重写此方法。我所有的研究得出的结论是,我必须重命名此方法,并用新命名的方法替换当前的所有用法。
我想做的是警告与之共事的其他人CustomList
,他们需要调用此方法而不是JList.setModel(ListModel<E> lm)
。我不确定如何为我的项目在本地弃用本机方法。
下面是一个概述我的新方法的简单示例:
public class CustomList<E> extends JList {
private ArrayList list;
public void newSetModel (ListModel<E> lm){
super.setModel(lm);
list = new ArrayList<Boolean> (lm.getSize());
}
}
请注意,由于无法使用Java 1.6,因此不能简单地使扩展中的JList通用以允许覆盖
用Java没有做到这一点的明智方法。
理想情况下,您具有构建/配置流程,并且可以使用工具来执行策略。看一下Checkstyle和PMD,也许其中之一可以让您将特定方法调用列入黑名单。
否则,您可以使用诸如asm或Aspectj之类的低级技术来编写自己的支票,但这并不容易。或者,您可以放学一些,写一个测试来分析源文件并查找错误的方法调用,但这很容易出错。
我想说,最好的办法是让其他团队成员知道。你们进行代码审查吗?你应该。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句