Java 确定eclipse中函数参数的适当父类型

Java 确定eclipse中函数参数的适当父类型,java,eclipse,refactoring,Java,Eclipse,Refactoring,我有这样的代码(部分通过重构) 在这种情况下,doSomething的函数签名过于严格。它只接受DerivedType,即使它只使用Parent1中提供的功能 改变似乎是明智的 void doSomething(DerivedType v){ ... } 到 而且一切都应该仍然有效,因为doSomething只使用Parent1中定义的函数。在调用doSomething的点上甚至不需要任何更改 请注意,它不能更改为void doSomething(Parent2 v){…},因为v.foo在P

我有这样的代码(部分通过重构)

在这种情况下,
doSomething
的函数签名过于严格。它只接受
DerivedType
,即使它只使用
Parent1
中提供的功能

改变似乎是明智的

void doSomething(DerivedType v){
...
}

而且一切都应该仍然有效,因为doSomething只使用
Parent1
中定义的函数。在调用
doSomething
的点上甚至不需要任何更改

请注意,它不能更改为
void doSomething(Parent2 v){…}
,因为
v.foo
Parent2
中不存在

eclipse有没有办法告诉我,
doSomething
的参数类型可以从
DeriedType
更改为
Parent1


在这种情况下,这是很明显的,但实际上,
doSomething
有几百行长,而且
DerivedType
的类型层次结构要深得多,在执行过程中引入了多个接口-因此快速实现这一点可以节省我不少时间。(可能不会花我这么长时间把这个问题打出来,但学习很重要;)

结果证明它非常简单

  • 光标指向所需的参数
  • Alt+Shift+T,(重构菜单)
  • “泛化声明类型”
然后,您可以从列表中选择
Parent1

void doSomething(DerivedType v){
...
}
void doSomething(Parent1 v){
...
}