[英]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在评论中指出的那样,您无法自动将返回列表重构为返回列表元素之一。 但是,需要采取一些步骤来安全地进行接口重构。
在界面中重命名列表返回方法。
对于最常见的解决方案,例如返回第一个元素,请使用TDD在您的一种实现中编写新的对象返回方法。 新方法应调用旧方法,并返回新的返回类型。 不要使用下面的示例,它显然是不安全的,并会在某些时候导致堆栈转储。
@Override public T findById(int id){ List<T> res = findById(id); return res.get(1); }
更新接口以包括新方法签名。
对于使用已经实现的相同解决方案的每个类,复制并粘贴在步骤2中编写的新方法。
对于任何其他所需的实现,请重复步骤2和4。
如果该方法是基类上的抽象方法,则步骤2中的初始方法将写在基类上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.