dubbo 怎么支持java子父对象参数返回
Dubbo 支持 Java 子父对象参数返回,可以通过以下方式实现:
- 在接口定义中,使用父类或接口作为返回值类型,如:
public interface UserService {
User getUserById(int id);
List<User> getUsers();
List<? extends User> getUsersByRole(String role);
}
- 在实现类中,返回子类对象时,需要使用具体的子类类型进行返回,如:
public class UserServiceImpl implements UserService {
@Override
public User getUserById(int id) {
// ...
return new AdminUser();
}
@Override
public List<User> getUsers() {
// ...
List<AdminUser> adminUsers = new ArrayList<>();
return adminUsers;
}
@Override
public List<? extends User> getUsersByRole(String role) {
// ...
List<AdminUser> adminUsers = new ArrayList<>();
return adminUsers;
}
}
- 在 Dubbo 的配置文件中,需要添加泛化调用配置,如:
<dubbo:service interface="com.example.UserService" ref="userService">
<dubbo:method name="getUserById" />
<dubbo:method name="getUsers" />
<dubbo:method name="getUsersByRole" />
</dubbo:service>
通过以上方式,Dubbo 就可以支持 Java 子父对象参数返回。
原文地址: https://www.cveoy.top/t/topic/r9s 著作权归作者所有。请勿转载和采集!