我发现了Java:查找方法的所有调用者–获取所有调用特定方法的方法,这提示如何查找特定方法的所有调用者。
那么,如何获得静态字段的用户呢?
例如,当我有静态z
的AnotherClass
,并且它与访问ClassA
,如何获得IMethod
ClassA#moved
?
public class AnotherClass {
public static int z = 20;
....
}
public class ClassA {
public int moved(int x, int y)
{
int temp = AnotherClass.z;
}
该示例基于org.eclipse.jdt.internal。*类,由于JDT SearchEngine
API具有全功能,因此我认为您无需花费太多精力。就您而言,下面的代码就足够了:
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
IProject plainProject = root.getProject("some project");
IJavaProject javaProject = JavaCore.create(plainProject);
try {
IType type = javaProject.findType("foo.bar.AnotherClass");
IField field = type.getField("z");
//IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { plainProject });
SearchPattern searchParttern = SearchPattern.createPattern(field,
IJavaSearchConstants.REFERENCES);
SearchRequestor requestor = new SearchRequestor() {
@Override
public void acceptSearchMatch(SearchMatch match) {
System.out.println(match.getElement());
}
};
SearchEngine searchEngine = new SearchEngine();
searchEngine.search(searchParttern,
new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
requestor, new NullProgressMonitor());
} catch (Exception e) {
// some exception handling you need to do
}
我能够在弹性搜索 6.8 中使用聚合查询获取数据库中文本字段的所有值: 我正在尝试为嵌套字段做同样的事情。 下面是文本字段(城市)和嵌套字段(冷却)的示例 下面是我一直引用的文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-aggregations-bucket-terms-aggregation.html
我有一个私有int数组,我需要以某种方式找到长度,但在静态类下无法做到这一点。我必须保持类的静态,是否可以添加其他方法来将a.length更改为其他方法? 该问题是由a.length引起的。
问题内容: 考虑此表: 此SQL查询返回每种类型中最昂贵的商品:SELECT类型,MAX(price)FROM产品GROUP BY类型 我还想为每行获取属于上述最高价格的字段 ID 和 名称 。什么SQL查询将返回这样的表? 问题答案: 这是经常出现的问题。我通常的解决方法在逻辑上等效于@Martin Smith给出的答案,但不使用子查询: 我的解决方案以及到目前为止在该线程上给出的所有其他解决方
问题内容: 我正在学习Java。我编写了以下代码,但是当我尝试输入时,我在Arrayfunction()中收到此错误“无法对非静态输入字段进行静态引用”。为什么会这样,我该如何解决? } 问题答案: 扫描仪未定义为静态,因此在错误的范围内 在内部创建Scanner实例, 或使用以下方法创建扫描仪
问题内容: 使用JavaDoc,如何在类中引用最终静态字段的值? 我希望在此示例中将其替换为field的值。 问题答案: 你的意思是?
问题内容: Java中的成员(字段或方法)与它们各自的类相关联,而不是与此类的对象相关联。以下代码尝试访问引用上的静态字段。 尽管返回,但它可以工作并显示。此代码如何工作? 问题答案: 该行为在Java语言规范中指定: 空引用可用于访问类(静态)变量而不会引起异常。 更详细地讲,进行静态场评估,例如以下工作(重点是我的工作)-在您的情况下: 计算主表达式,并丢弃结果。[…] 如果该字段是非空白的f