“Java 参数顺序乱”这个问题可能有几种不同的理解,我分别说明一下,你看看你遇到的是哪一种。
这是最常见的情况。
Java 是按位置传参的,不是按名字传参:
void createUser(String name, int age, String email) {}
createUser("Tom", 18, "tom@x.com");
如果参数类型相似(比如多个 String),很容易写错:
createUser("Tom", "tom@x.com", 18); // 编译报错或逻辑错误
User user = User.builder()
.name("Tom")
.age(18)
.email("tom@x.com")
.build();
record UserParam(String name, int age, String email) {}
例如:
Object...void test(int a, String... s) {}
void test(String s, int... a) {}
Java 在编译期决定调用哪个方法,顺序和类型非常敏感。
比如:
java -jar app.jar --port 8080
⚠️ 注意:
-jar 必须在 app.jar 前-jar 前错误示例:
java app.jar -jar --port 8080 // 错
@Param 注解@Select("select * from user where id = #{id}")
User get(int id); // MyBatis 可能报错
✅ 正确:
User get(@Param("id") int id);
List<User> find(String name, int age); // 可能顺序错
Java 会按最匹配原则选择方法:
void f(int a, long b) {}
void f(long a, int b) {}
f(1, 2); // 编译错误:歧义
Java 本身参数顺序是固定的、严格的,所谓“乱”,通常是因为:
位置传参易错 + 参数过多 + 框架约定不明确。
如果你能贴一段具体代码或报错信息,我可以直接帮你定位是哪一种情况。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。