Java调用方法时出现') expected'错误,请求排查提示
解决Java中"close parenthesis is expected"及"amount无法解析"错误
你的问题出在方法调用的语法上——Java(在非预览特性的常规版本中)不支持像amount:10这样的命名参数写法,这是Python、Kotlin等语言的特性,但Java编译器会把amount当成一个未定义的变量,同时冒号的存在打乱了方法调用的语法结构,所以才会抛出"amount无法解析"和") expected"的错误。
修正方法
只需要去掉参数名和冒号,直接传递数值即可,因为Java方法是按参数定义的顺序来匹配的,deposit方法的第一个参数就是amount,编译器会自动把传入的10赋值给它:
public class Main { public static void main(String[] args) { Account account=new Account(); // 修正:去掉amount:,直接传值 account.deposit(10); System.out.println(account.getBalance()); } }
可选的代码可读性优化
如果你想让代码更清晰,明确传递的是存款金额,可以先把值赋值给一个有意义的变量,再传入方法:
public class Main { public static void main(String[] args) { Account account=new Account(); float depositAmount = 10; account.deposit(depositAmount); System.out.println(account.getBalance()); } }
注意:Java 21及以上版本提供了命名参数预览特性,但需要通过编译参数开启(
--enable-preview),并且这还不是正式稳定的特性,所以在常规开发中还是推荐使用按顺序传参的方式。
内容的提问来源于stack exchange,提问作者shafigh
相关产品推荐
相关产品推荐

