java - 更改框架类/方法的访问级别

标签 java frameworks refactoring deprecated

在这个给定的例子中,AbstractAnimal 在框架之外有很多实现。但是,该框架已重构,因此现在存在 WalkingAnimals。它的目的是让 Dog 和所有其他动物一起继承 WalkingAnimal。举个例子,没有不走路的动物。所有的继承者都应该被重构。

UML

这是一个 Java 框架,所以我将这样调用它。但请随意更笼统地解释这个问题。因为它相当大,我们希望我们的 IDE 提供某种指示,表明当前继承 AbstractAnimal 的类应该更改。因此我们想到了@Deprecated 注解。然而,框架本身会抛出警告,所以它一定不是最干净的方法。

本质上,有些类和方法的访问级别会发生变化,因此只有框架才能使用它们。我们希望以尽可能清晰的方式在待重构的类中宣布这一点(例如@Deprecated 提供的警告和删除线)。我们的 IDE 是 IntelliJ IDEA,我们正在使用 Java 1.8。

我们正在寻找某种自动任务生成方式,开发人员可以查看警告列表并了解他们仍需要更改的内容。老板也希望看到取得进展,因此让这些可数将是一个很大的优势。

预先感谢您的任何建议。

最佳答案

您可以做的是向 AbstractAnimal 添加一个名为 youShouldNotExtendAbstractAnimalDirectly() 的抽象虚拟方法,该方法仅在 WalkingAnimal 中有一个实现。这将导致 Dog 中的编译失败,当开发人员尝试修复它时,他们会遇到该方法,要么接受提示,要么搬起石头砸自己的脚。

关于java - 更改框架类/方法的访问级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49064736/

相关文章:

linux - 嵌入式设备的简单 Web 应用程序

cocoa - 在 Aquatic Prime 中生成许可证的 PHP 脚本存在问题

java - 在eclipse中提取方法似乎不起作用

ecmascript-6 - 在 VSCode 中“重构”移动文件 - es6

java - Spring Batch - 如何将批处理作业的输出文件生成为 excel 表

java - 非常基本的Java嵌套for循环问题

ios - 如何在 iOS 应用程序中验证 Aadhar 号码?

java - 将 Java 类重写为干净且可测试的代码

java - getValue 数据库条目 onitemClick

java - 看太多 lsof 无法识别协议(protocol)