par*_*vus 7 eclipse preferences
在窗口>首选项>常规>搜索下,有选项忽略潜在匹配
它有什么作用?无论我是否激活,我都没有看到任何区别.
它是一个只对Java开发有意义的选项(我从来没有这样做,但我使用Eclipse开发C,Python和PHP)?
有关示例,请参阅错误127442:根据您搜索的内容(类,方法等),搜索引擎可以找到可以匹配的实例(但不能肯定地说).
这些实例标记为" POTENTIAL_MATCH
":
具有不同数量的参数的方法不是潜在的匹配.
(见错误97322)
潜在匹配是分辨率失败的匹配(例如,方法绑定为空).
如果用户搜索"foo(String)
"(没有限定String
),则"foo(java.lang.String)
"和"foo(p.String)
"都是完全匹配.对于
.class
文件大小写,我认为在缺少类型的情况下我们只能有潜在的匹配(参见bug 196200),即如果编译.class文件并且它引用的某些类型丢失了.
错误382778中找到了潜在匹配错误行为的当前示例:
我有一个public static void方法
printIt(String name)
.
当我打开其调用层次结构时,一些调用者丢失了.我猜测调用者丢失了,因为java搜索将它们标记为潜在而不是
printIt(String)
参考的完全匹配.
以下代码有时被标记为潜在的,有时确切地说:
// Listing 1
PublicInterface2 impl2 = new Impl2("Name Broken");
Static.printIt(impl2.getName());
Run Code Online (Sandbox Code Playgroud)
当搜索结果标记为潜在时,
printIt()
调用层次结构中缺少调用者.
PublicInterface2 is an empty public interface which extends PackageInterface2Getters.
PackageInterface2Getters is an empty default-scoped interface which extends PackageInterface1Getters.
PackageInterface1Getters is a default-scoped interface which declares String getName().
Run Code Online (Sandbox Code Playgroud)
所以
impl2.getName()
上面返回一个String
.报告中存在一些问题,我想将匹配标记为可能:
...
Filename : \D:\workspace\eclipse\_runtimes\jdt\call-hierarchy-bug\src\main\PublicInterface2.java
COMPILED type(s)
2 PROBLEM(s) detected
- Pb(2) PackageInterface1Getters cannot be resolved to a type
- Pb(327) The hierarchy of the type PublicInterface2 is inconsistent
Run Code Online (Sandbox Code Playgroud)
结果是:
编译器要求"
NameEnvironment
"获取任何依赖类型的类型信息.
搜索有它自己的NameEnvironment
实现JavaSearchNameEnvironment
,它不寻找辅助类型.
这很糟糕,令人惊讶的是我们直到现在还没有遇到这个问题.
归档时间: |
|
查看次数: |
1652 次 |
最近记录: |