idtitlesidebar_label
    invoke
    调用对象方法
    调用对象方法

    既然模板表示能支持对象属性的引用,那也支持对象方法的调用吗?答案是肯定的,且调用方法的语法与Java的一致。

    1. @Request(url = "http://localhost:8080/user/phone_number/${user.getUsername()}")
    2. String getUser(@DataVariable("user") User user);

    这里的${user.getUsername()}的运行结果和Java中调用user.getUsername()执行效果是一样的。

    此外,模板表达式有个特别的语法,即当调用的方法中没有参数时可以把括号()省去。

    1. @Request(url = "http://localhost:8080/user/phone_number/${user.getUsername}")
    2. String getUser(@DataVariable("user") User user);

    这里的${user.getUsername}和上面的${user.getUsername()}是等价的。

    传入参数的形式也和Java中的一样:

    1. @Request(url = "http://localhost:8080/user/phone_number/${user.getPhoneList().get(phoneIndex).getNumber()}")
    2. String getUser(@DataVariable("user") User user, @DataVariable("phoneIndex") int phoneIndex);

    也可以结合参数序号形式:

    1. @Request(url = "http://localhost:8080/user/phone_number/${$0.getPhoneList().get($1).getNumber()}")
    2. String getUser(User user, int phoneIndex);

    结合属性引用,进一步简化:

    1. @Request(url = "http://localhost:8080/user/phone_number/${$0.phoneList.get($1).number}")
    2. String getUser(User user, int phoneIndex);