gpt4 book ai didi

java - 确定 Eclipse 中函数参数的适当父类型

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:29 30 4
gpt4 key购买 nike

我的代码看起来像这样(部分重构)

void doSomething( DerivedType v ) {
v.foo();
v.bar();
...
}

public static class DerivedType extends Parent1 {
@Override void foo() { ... }
}

public static class Parent1 extends Parent2 {
public void foo() {...}
public void bar() {...}
}

public static class Parent2 {
public void bar() { ... }
}

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

改变似乎是明智的

void doSomething(DerivedType v){
...
}

void doSomething(Parent1 v){
...
}

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

请注意,它无法更改为 void doSomething(Parent2 v){...},因为 v.fooParent2 中不存在。

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

在这种情况下,这是非常明显的,但实际上,doSomething有几百行长,而DerivedType的类型层次结构要深得多,随着它的发展引入了多个接口(interface) - 因此,一种快速的方法可以节省我相当多的时间。 (可能不会花我把这个问题打出来那么长的时间,但学习很重要;))

最佳答案

事实证明它 super 简单。

  • 将光标置于所需参数上,
  • Alt+Shift+T,(重构菜单)
  • “概括声明的类型”。

然后您可以从列表中选择Parent1

关于java - 确定 Eclipse 中函数参数的适当父类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402141/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com