public class RoleService extends BaseService {
private IRoleDao roleDao;
public ServiceReturns<List<Role>> findAll() throws Exception {
String ss ;
try {
List<Role> allRoleList = roleDao.findAll(Role.class);
if (allRoleList.size() <= 0) {
this.setSuccess(false);
this.setMessageCode(MessageConstant.FIND_ALLROLE_FAILURE);
return this;
}
this.setDataObject(allRoleList);
this.setForwardUrl(ForwardUrlConstant.FIND_ALLROLE_SUCCESS); return this;
} catch (Exception exception) {
this.saveLog(exception, new LogDetails(
ModuleConstant.MODULE_ROLE_MANAGEMENT,
ModuleConstant.METHOD_COMMON_FIND_ALL, getClassName()),
MessageConstant.FIND_ALLROLE_FAILURE);
this.setSuccess(false);
}
return this; }
这个类中好几个return this 各代表什么意思啊?public class BaseService<T> extends ServiceReturns<T>{
private LogDetails logDetails = new LogDetails();
protected LogDao logDao;
public void saveLog(LogDetails log){
logDao.save(log);
}
public LogDao getLogDao() {
return logDao;
}
.....public class ServiceReturns<T> {
private boolean success ;
private String messageCode;
private T dataObject;
private String forwardUrl=""; public String getMessageCode() {
return messageCode;
} public void setMessageCode(String messageCode) {
this.messageCode = messageCode;
} public ServiceReturns() {
} public ServiceReturns(boolean _success) {
this.success = _success;
}
.....RoleService其实继承了serviceReturn ,但是RoleService 中的方法返回的又是serviceReturn ,RoleService 中的方法return this指的是什么,RoleService 中的saveLog方法里面的this.setSuccess(false)应该值的是ServiceReturn类中的变量,而对这个方法而言没有返回值啊?
我去完全晕了!!!!
比如 ServiceReturns<List<Role>> r = new RoleService();
我们实例化了一个RoleService类型的对象,把它赋给了ServiceReturns<List<Role>> 类型的引用 r
(子类类型对象可以隐式转换成其父类类型的对象)
r.findAll()返回的是r引用的实例化对象所以你需要理解的是
1.对象和对象引用的区别
2.父类引用可以引用子类实例化对象的原因
涉及builder的时候就经常用到