Version: 1.4.x

调用对象方法

既然模板表示能支持对象属性的引用,那也支持对象方法的调用吗?答案是肯定的,且调用方法的语法与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);
Last updated on