我想在 Java 中有构造函数链。例如,对于第一个构造函数,我有一个字符串作为参数,并在我从参数字符串创建对象时调用第二个构造函数。
public class IMethodFinder {
public IMethodFinder(String projectName, String methodName,
int numberOfParameters) {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
IJavaProject javaProject = JavaCore.create(project);
this(javaProject, methodName, numberOfParameters);
}
public IMethodFinder(IJavaProject javaProject, String methodName,
int numberOfParameters) {
...
}
}
但是,我收到错误“构造函数调用必须是构造函数中的第一条语句”错误。
我制作了一个在两个构造函数之间共享的通用代码,但我不确定这是绕过该问题的唯一解决方案。
public class IMethodFinder {
public IMethodFinder(IJavaProject javaProject, String methodName,
int numberOfParameters) {
dosomething(javaProject, methodName, numberOfParameters);
}
public IMethodFinder(String projectName, String methodName,
int numberOfParameters) {
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
IJavaProject javaProject = JavaCore.create(project);
dosomething(javaProject, methodName, numberOfParameters);
}
private void dosomething(IJavaProject javaProject, String methodName,
int numberOfParameters)
{
...
}
}
- 为什么 Java 需要构造函数调用作为第一条语句?这个要求背后的想法是什么?
- 对于我的情况,Java 的约定是什么?调用通用方法是一个好方法吗?