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){
...
}