在 Java 里,“Parameter(参数)”这个词通常出现在几个不同场景中。下面我按最常见、最容易混淆的几种情况给你讲清楚,并配上示例。
这是最基础的“Parameter”。
public void sayHello(String name) { // name 是参数
System.out.println("Hello, " + name);
}
sayHello("Tom");
✅ 形参(Parameter):定义方法时的变量
✅ 实参(Argument):调用方法时传的值
Java 支持“个数不固定”的参数:
public void printAll(String... items) {
for (String s : items) {
System.out.println(s);
}
}
调用方式:
printAll("A", "B", "C");
printAll(); // 也可以不传
⚠️ 注意:
...从 Java 8 开始,可以通过反射获取方法参数信息。
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
public class Test {
public void test(String name, int age) {}
public static void main(String[] args) throws Exception {
Method m = Test.class.getMethod("test", String.class, int.class);
for (Parameter p : m.getParameters()) {
System.out.println(p.getName()); // name, age
System.out.println(p.getType()); // String, int
}
}
}
⚠️ 注意:
javac -parameters Test.java
注解也可以有“参数”:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {
String value();
int count() default 1;
}
使用:
@MyAnno(value = "test", count = 3)
public void method() {}
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
运行:
java Main hello world
| 场景 | 是否是 Parameter |
|---|---|
| 方法定义中的变量 | ✅ |
| 方法调用时传的值 | ❌(叫 argument) |
| 反射 Parameter | ✅ |
| 注解里的“参数” | ✅(特殊语法) |
如果你指的是某一个具体场景(比如 MyBatis 的 @Param、Spring 的 Parameter、反射、或者泛型参数),可以告诉我,我可以直接按你用的技术栈讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。