IDEA - 添加编译参数

10/20/2022 IDEATool

摘要

IntelliJ IDEA 2022.2 (Ultimate Edition)

# 一:场景

希望IDEA编译程序时能添加编译参数,如下代码如果没有添加 -parameters,默认生成的 class 文件并不包含方法的形参名信息,简而言之,for循环的次数为0。

class Test {
    public void replace(String str, List<String> list) {
    }
}

public class MethodParameterTest {

    public static void main(String[] args) throws Exception {
        // 获取 String 的类
        Class<Test> clazz = Test.class;
        // 获取 String 类的带两个参数的 replace() 方法
        Method replace = clazz.getMethod("replace", String.class, List.class);
        // 获取指定方法的参数个数
        System.out.println("replace 方法参数个数:" + replace.getParameterCount());
        // 获取 replace 的所有参数信息
        Parameter[] parameters = replace.getParameters();
        int index = 1;
        // 遍历所有参数
        for (Parameter p : parameters) {
            if (p.isNamePresent()) {
                System.out.println("---第" + index++ + "个参数信息---");
                System.out.println("参数名:" + p.getName());
                System.out.println("形参类型:" + p.getType());
                System.out.println("泛型类型:" + p.getParameterizedType());
            }
        }
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 二:IDEA

  1. 打开 File -> Settings,或使用快捷键 Ctrl+Alt+S

  1. 打开 Build, Execution, Deployment -> Compiler -> Java Compiler,最下面点击 "+"

  1. 选择需要添加参数的指定模块,并且添加编译参数 -parameters

  1. 重新运行代码

如果上面步骤做完,没有得到步骤四的结果

  1. 重新打开步骤一和步骤二的界面,查看是否添加成功;
  2. 把旧 Class 文件手动删除。

# 三:Maven

如果使用 Maven 的话,可以在 maven-compiler-plugin 插件中添加编译参数。

下面是完整的插件内容添加片段:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgs>
        	<arg>-parameters</arg>
        </compilerArgs>
    </configuration>
</plugin>
1
2
3
4
5
6
7
8
9
10
11
12

重新运行代码

如果xml添加完毕,没有得到上面结果

  1. reload 该 Maven 项目;
  2. 执行clean命令,清除旧 Class 文件。

# 四:参考文献

最后更新: 9/23/2023, 3:55:03 PM