[英]Find Method usages only for specified class in Intelij-Idea
我正在使用 Intelijidea,但在查找方法用法时遇到问题。
假设我有接口 Worker。
public interface Worker {
void startWork();
void endWork();
}
我有两个实现。
public class Develper implements Worker {
@Override
public void startWork() {
System.out.println("Developer Start Working");
}
@Override
public void endWork() {
}
}
public class Qa implements Worker {
@Override
public void startWork() {
System.out.println("QA start Work");
}
@Override
public void endWork() {
}
}
我打开 Developer 类并尝试查找 startWork 的用法。 我只想查看 Developer.startWork 实现方法的使用情况。
但是当我找到用法时,它会同时显示 Developer 和 Qa startWork 方法的用法。 在查找 Developer.startWork 用法时如何避免 Qa.startWork 方法的使用。
请指教。
使用Ctrl + Shift + Alt + F7 (对于 Mac 为⌘ + ⇧ + ⌥ + F7 )应该会显示 Jim Hawkins 回答的提示。
请参阅: https : //www.jetbrains.com/help/idea/find-usages-method-options.html
当您使用此对话框 Ctrl+Shift+Alt+F7 搜索方法实现的用法时,IntelliJ IDEA 将询问您是否要搜索基本方法。 对于任何其他查找用法操作,例如 Alt+F7 或 Ctrl+Alt+F7,基本方法将自动包含在搜索结果中。
在阅读@JimHawkins 的答案后,我认为大象还在房间里:) 问题是,您是想查看 Developer#startWork 的实际调用位置,还是想查看它静态引用的位置?
例如:
Developer developer = new Developer();
developer.startWork(); // you want to find only this?
Worker worker = developer;
worker.startWork(); // ..or this as well?
find usages 方法只能告诉,给定的方法在哪里被静态引用,但不能告诉它实际使用的位置(这是通过多态机制确定的运行时)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.