Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在intelliJ中,如何将方法移动到接口的实现类?_Java_Intellij Idea - Fatal编程技术网

Java 在intelliJ中,如何将方法移动到接口的实现类?

Java 在intelliJ中,如何将方法移动到接口的实现类?,java,intellij-idea,Java,Intellij Idea,我正在使用intelliJ 2016.2.1 我在主类测试中有一个方法foo(): class Test { IService iService; foo(){...} } iSeries是一个接口,它有一个实现类ServiceImpl。 当我将插入符号置于foo并选择移动时,intelliJ仅允许我选择iSeries设备。但我实际上想要serviceinpl作为移动目的地 如果我继续移动,intelliJ将把方法实现放在接口iSeries中。但我想在那里申报 问题:如何重构

我正在使用intelliJ 2016.2.1

我在主类测试中有一个方法
foo()

class Test {
   IService iService;

   foo(){...}

}
iSeries是一个接口,它有一个实现类
ServiceImpl
。 当我将插入符号置于
foo
并选择移动时,intelliJ仅允许我选择
iSeries设备
。但我实际上想要
serviceinpl
作为移动目的地

如果我继续移动,intelliJ将把方法实现放在接口
iSeries
中。但我想在那里申报



问题:如何重构foo(),将其方法实现移动到ServiceImpl中,并在iSeries设备中声明方法?

将方法移动到iSeries设备后,使用重构|下推成员。。。要将其移动到
ServiceImpl

我正在使用Intellij 14,我不知道有移动命令。为什么不直接剪切粘贴?@NoahHerron这是什么说法?当然,通过工具进行重构总是更好的选择。其思想是您的IDE确切地知道从何处调用方法;并可能对其他代码进行更新;或者告诉你们在移动东西时会遇到的问题。从这个意义上说:这是一个非常合法的问题。@GhostCat说出来的话是否像我说的那样是一个糟糕的问题?如果是这样的话,我的错。在IDE出现之前很久就有了开发。在修复它之前,打破它将使您成为更好的开发人员。IDE如何可能将方法实现移动到接口中?接口不包含方法implementations@OsamaSalama根据Java8,接口可以有默认的方法实现。