- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是 eclipse 插件开发的新手,我正在尝试将 IMethod 转换为完整方法名称的字符串表示形式。即
my.full.package.ClassName.methodName(int param, String string)
到目前为止,我不得不手动推出自己的解决方案。有没有更好的办法?
private static String getMethodFullName(IMethod iMethod)
{
String packageString = "[Default Package]";
try {
IPackageDeclaration[] declarations = iMethod.getCompilationUnit().getPackageDeclarations();
if(declarations.length > 0)
{
packageString = declarations[0].getElementName();
}
} catch (JavaModelException e) {
}
String classString = iMethod.getCompilationUnit().getElementName();
classString = classString.replaceAll(".java", "");
String methodString = iMethod.getElementName() + "(";
for (String type : iMethod.getParameterTypes()) {
methodString += type + ",";
}
methodString += ")";
return packageString + "." + classString + "." + methodString;
}
最佳答案
您可以使用
获取类型的完全限定名称method.getDeclaringType().getFullyQualifiedName();
这可能比从编译单元访问包更容易。你们其余的功能看起来是正确的。
一个小问题:您应该使用 StringBuilder 来构建字符串而不是添加到标准字符串。字符串是不可变的,因此加法会产生大量不可恢复的临时对象。
private static String getMethodFullName(IMethod iMethod)
{
StringBuilder name = new StringBuilder();
name.append(iMethod.getDeclaringType().getFullyQualifiedName());
name.append(".");
name.append(iMethod.getElementName());
name.append("(");
String comma = "";
for (String type : iMethod.getParameterTypes()) {
name.append(comma);
comma = ", ";
name.append(type);
}
name.append(")");
return name.toString();
}
关于java - 使用 JDT 获取完整的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712271/
这是对 Programatically writing Java 的后续问题 我正在寻找 JDT 来构建一个独立的应用程序(不是 eclipse 插件)来以编程方式编写 JUnit 测试类。 我想知道
我正在尝试使用 JDT SearchEngine 查找对给定对象的引用。但是我在调用 org.eclipse.jdt.core.search.SearchEngine 的“搜索”方法时遇到“Nul
在Rational Software Archtect上安装AJDT 2.2.3之后,每个编辑器都会显示错误:插件org.eclipse.jdt.ui无法加载类org.eclipse.jdt.inte
以下明显不正确的代码(受 @dexter's answer to a question of mine 启发): Class[] exceptions; try { // some stuff
我在我的 adt eclipse 中遇到了这个错误。我正在使用更新版本的 java。请有人帮我解决这个问题。 最佳答案 我在 Eclipse 中发现了一次相同的错误。 这发生在我的 Windows 更
假设变量 i 的初始化如下: int i = 0; 我正在尝试检测简单的 java 变量更改,例如: i=i+1; 这可以使用带有 JDT 的访问者模式来完成,例如: public boolean v
我目前在使用 JDT Batch Compiler 时遇到问题.我的问题涉及在我上面发布的链接中概述的命令中指定源路径。我可以指定一个源路径,但不能指定多个。让我用一个简短的例子来解释: 假设我有两个
如何在没有 JDT 或其他插件的情况下获得 Eclipse,以便我可以安装 D Development Tools并为 D 制作一个 IDE? 最佳答案 Eclipse 项目下载站点 ( here f
我正在尝试编写一个插件,它将改变(更像是添加)当前 eclipse java 调试器的功能。有关我想要完成的详细信息,您可以查看此线程:Writing a custom eclipse debugge
我需要解析java方法,查看其内部的所有其他方法调用(以及它们内部和更深层次的等等),以便找到某个字符串的所有出现,比如说“System.out.println(“Blabla”) );" 我如何使用
我使用 JDT 来编译我的 java 类。 BatchCompiler 返回一个字符串,但我需要一系列问题/错误及其列和行信息。编译器.编译(单位);将错误打印到它的 printwriter,comp
如何在没有 Eclipse IDE 的情况下禁用(抑制)Eclipse jdt 编译器中不必要的转换警告?也许有任何编译选项? 最佳答案 转到:- Windows -> Preferences ->
我有一个访问者,它应该输出调用者类型、其名称、参数类型、方法声明中的相应类型,如果它是常量变量,则输出其值 public boolean visit(MethodInvocation e) {
例如,我有这样的代码 SomeObject1 obj1 = new SomeObject1(); SomeObject2 obj2 = new SomeObject2(); ... obj1.foo(
在eclipse中,有“调用层次结构”可以轻松找到调用图(或方法调用关系)。我想找一些API来提取这种关系。但是我找不到任何现有的教程来帮助我。有人能给我一些线索吗?主要是想知道应该使用JDT中的哪个
如何在 eclipse Juno (4.2) 中将方法入口断点设置为不可编辑(库)类的合成默认构造函数? 例如 public class Foo {} // can't change that co
我有一个 VariableDeclarationStatement,我通过访问 AST 保留了它。想在声明范围内找到对这个局部变量的所有引用。这包括当前范围内的嵌套 block 。 一种方法是访问下面
我正在使用 eclipse JDT,想知道是否有任何方法可以从命令行导入项目。对于 eclipse CDT, headless 构建应用程序可以达到目的,但我无法为 eclipse JDT 做到这一点
我想开发一个Java编辑器eclipse插件,它与普通的Java编辑器略有不同。是否可以扩展普通 Java 编辑器本身?提前致谢 最佳答案 在 Eclipse 中,您通常不会扩展(子类)编辑器(或其他
我正在创建一个实用程序来检测代码库中未使用的方法。通过使用下面的代码,我能够成功找到未使用的方法(没有引用)。但我还需要删除这些未使用的方法。如果可以通过 JDT,请告诉我。 // Get all t
我是一名优秀的程序员,十分优秀!