繁体   English   中英

Intellij:如何在文件夹中运行所有main()方法?

[英]Intellij: How to run all main() methods in a folder?

在IntelliJ中,有一项功能可以运行文件夹中的所有单元测试。 是否有可能以相同的方式运行所有main()方法?

不是我知道的。

包装类的解决方法:

main方法创建一个类,并调用该方法中的每个main方法。

如果这些具有main方法的类发生了很大变化,则可以将此反射库与以下代码一起使用,以扫描具有main方法的类:

 Reflections reflections = new Reflections("your.package.with.main.classes");

 Set<Class<? extends Object>> allClasses = 
     reflections.getSubTypesOf(Object.class);

allClasses集包含该软件包中的所有类。

以下代码将筛选具有main方法的类:

Set<Class> mainClasses = allClasses.stream()
  .filter(clazz -> 
    Arrays.stream(clazz.getMethods())
     .anyMatch(method -> 
        method.getName().equals("main")))
   .collect(Collectors.toSet());

调用main方法应该不再是问题。

PS:对staticpublic修饰符进行过滤也是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM