繁体   English   中英

如何重构通用方法对接口及其所有实现的返回

[英]How to refactor the return of a generic method to an interface and all its implementations

我将更改在接口中声明的返回类型,该接口在其他关于class method的10中实现。 我使用eclipse作为IDE,当前方法的签名是:

public List<T> findById(int id);

还有我需要的

public T findById(int id);

问候,圣地亚哥

正如@ Andy Turner在评论中指出的那样,您无法自动将返回列表重构为返回列表元素之一。 但是,需要采取一些步骤来安全地进行接口重构。

  1. 在界面中重命名列表返回方法。

  2. 对于最常见的解决方案,例如返回第一个元素,请使用TDD在您的一种实现中编写新的对象返回方法。 新方法应调用旧方法,并返回新的返回类型。 不要使用下面的示例,它显然是不安全的,并会在某些时候导致堆栈转储。

     @Override public T findById(int id){ List<T> res = findById(id); return res.get(1); } 
  3. 更新接口以包括新方法签名。

  4. 对于使用已经实现的相同解决方案的每个类,复制并粘贴在步骤2中编写的新方法。

  5. 对于任何其他所需的实现,请重复步骤2和4。

如果该方法是基类上的抽象方法,则步骤2中的初始方法将写在基类上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM