id | title | sidebar_label |
---|---|---|
invoke | 调用对象方法 | 调用对象方法 |
既然模板表示能支持对象属性的引用,那也支持对象方法的调用吗?答案是肯定的,且调用方法的语法与Java
的一致。
@Request(url = "http://localhost:8080/user/phone_number/${user.getUsername()}")
String getUser(@DataVariable("user") User user);
这里的${user.getUsername()}
的运行结果和Java
中调用user.getUsername()
执行效果是一样的。
此外,模板表达式有个特别的语法,即当调用的方法中没有参数时可以把括号()
省去。
@Request(url = "http://localhost:8080/user/phone_number/${user.getUsername}")
String getUser(@DataVariable("user") User user);
这里的${user.getUsername}
和上面的${user.getUsername()}
是等价的。
传入参数的形式也和Java
中的一样:
@Request(url = "http://localhost:8080/user/phone_number/${user.getPhoneList().get(phoneIndex).getNumber()}")
String getUser(@DataVariable("user") User user, @DataVariable("phoneIndex") int phoneIndex);
也可以结合参数序号形式:
@Request(url = "http://localhost:8080/user/phone_number/${$0.getPhoneList().get($1).getNumber()}")
String getUser(User user, int phoneIndex);
结合属性引用,进一步简化:
@Request(url = "http://localhost:8080/user/phone_number/${$0.phoneList.get($1).number}")
String getUser(User user, int phoneIndex);