在 Java 里,“Parameter(参数)”通常出现在**方法定义、方法调用、反射(Reflection)**这几个场景里。下面分情况给你讲清楚,并给示例。
public void sayHello(String name, int age) {
System.out.println("你好," + name + ",年龄:" + age);
}
String name、int age 就是方法参数(parameter)sayHello("张三", 18);
void change(int x) {
x = 100;
}
int a = 10;
change(a);
// a 仍然是 10
void changeList(List<String> list) {
list.add("Java");
}
List<String> myList = new ArrayList<>();
changeList(myList);
// myList 里有 "Java"
⚠️ 注意:改的是对象内容,不是引用本身
public void printAll(String... items) {
for (String s : items) {
System.out.println(s);
}
}
printAll("A", "B", "C");
用于运行时获取方法参数信息
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);
Parameter[] params = m.getParameters();
for (Parameter p : params) {
System.out.println(p.getName()); // name / age
System.out.println(p.getType()); // String / int
}
}
}
javac -parameters Test.java
❌ 误解:Java 有引用传递
✅ 实际:只有值传递(引用类型传的是地址值)
❌ 在方法里重新赋值对象
void swap(List a, List b) {
List t = a; a = b; b = t; // 对外无效
}
如果你是指 MyBatis / Spring / JDBC 里的 Parameter,或者 @Parameter 注解,可以告诉我具体场景,我给你更针对性的例子。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。