警告:不应直接调用主要方法
Warning: main methods should not be directly called
我目前正在从事一个 Java 项目,其中有许多 main
方法。现在,我进行了一些重构,这会影响所有 main
方法。但是,有些 main
方法实际上是直接从其他方法调用的。我认为这是一种糟糕的风格,它实际上使重构变得更加困难。因此,我希望能够识别调用 main
方法的所有位置。目前,我使用我的 IDE 工具来查找对给定 main
方法的所有引用,但这很乏味,而且很容易忘记检查 main
方法之一。
我的问题是,是否有某些 checkstyle 规则或 Eclipse 编译器警告设置会在直接调用 main
方法时产生警告。我找不到一个。
如果您担心人们可能以各种方式格式化 "main" 方法,并且您在使用 "pattern matching" 时可能会错过其中的一些方法...
"javap -public MyClass.class" 适合你吗?当我试穿时...
public class Main1 {
public
static
void
main
(
String
[]
args
)
{
System.out.println("Main1: Hello World");
}
}
它产生了以下输出:
Compiled from "Main1.java"
public class Main1 {
public Main1();
public static void main(java.lang.String[]);
}
诚然,如果这个 'main' 正在调用另一个 'main',它不会 'detect',这将有助于找到所有 'main'。
源自 Post 的来源:Java Program to disassemble Java Byte Code
正如@Jeutnarg 在评论中建议的那样:
[...] you could use Eclipse's Java search. Search for 'main', only searching for 'Method' with Limit to 'References' with Search in 'Sources' with a scope of your project.
这就是我最终所做的,它实际上比我预期的要好得多。
我目前正在从事一个 Java 项目,其中有许多 main
方法。现在,我进行了一些重构,这会影响所有 main
方法。但是,有些 main
方法实际上是直接从其他方法调用的。我认为这是一种糟糕的风格,它实际上使重构变得更加困难。因此,我希望能够识别调用 main
方法的所有位置。目前,我使用我的 IDE 工具来查找对给定 main
方法的所有引用,但这很乏味,而且很容易忘记检查 main
方法之一。
我的问题是,是否有某些 checkstyle 规则或 Eclipse 编译器警告设置会在直接调用 main
方法时产生警告。我找不到一个。
如果您担心人们可能以各种方式格式化 "main" 方法,并且您在使用 "pattern matching" 时可能会错过其中的一些方法...
"javap -public MyClass.class" 适合你吗?当我试穿时...
public class Main1 {
public
static
void
main
(
String
[]
args
)
{
System.out.println("Main1: Hello World");
}
}
它产生了以下输出:
Compiled from "Main1.java"
public class Main1 {
public Main1();
public static void main(java.lang.String[]);
}
诚然,如果这个 'main' 正在调用另一个 'main',它不会 'detect',这将有助于找到所有 'main'。
源自 Post 的来源:Java Program to disassemble Java Byte Code
正如@Jeutnarg 在评论中建议的那样:
[...] you could use Eclipse's Java search. Search for 'main', only searching for 'Method' with Limit to 'References' with Search in 'Sources' with a scope of your project.
这就是我最终所做的,它实际上比我预期的要好得多。