Java布尔类型的问题

packageorg.lxh.useradmin.dao.proxy;importjava.util.List;importorg.lxh.useradmin.dao.I... package org.lxh.useradmin.dao.proxy;

import java.util.List;

import org.lxh.useradmin.dao.IUserDAO;
import org.lxh.useradmin.dao.impl.IUserDAOImpl;
import org.lxh.useradmin.dbc.DataBaseConnection;
import org.lxh.useradmin.vo.User;

public class IUserDAOProxy implements IUserDAO {
private DataBaseConnection dbc = null;
private IUserDAO dao = null;

public IUserDAOProxy() {
this.dbc = new DataBaseConnection();
this.dao = new IUserDAOImpl(this.dbc.getConnection());
}

@Override
public boolean doCreate(User user) throws Exception {
boolean flag = true;
try {
flag = this.dao.doCreate(user);
} catch (Exception e) {
throw e;
} finally {
this.dbc.close();
}
return flag;
}

方法中“boolean flag = true;”不是为flag赋予了一个"true"值吗?怎么捕获异常时怎么还能flag = this.dao.doCreate(user); ?谁能解析下doCreate(User user)这个方法?
展开
 我来答
抱雪的互联网之路
2010-09-06 · 计算机教师
抱雪的互联网之路
采纳数:103 获赞数:216

向TA提问 私信TA
展开全部
你的异常可能是空指针异常吧。
前面的boolean flag = true;是给这个flag初始化一个值,
下面flag = this.dao.doCreate(User);是利用doCreate这个方法获得一个值,如果可以获得,这个值就覆盖了flag的默认值。
所以,这个方法的作用就是,如果可以通过this.dao.doCreate()这个方法获得值的话,就给flag;如果不能,或出现问题则flag值为默认的true。
如果是空指针的话,有可能是this.dao.Create()这个方法中有空指针,也不一定是flag这个值为空!
空指针异常一般指,在方法调中,调用的一方为空。比如this.dao.Create()这个方法中如果this或者this.dao或者Create方法 有一个是空的都会判定这句话是空指针,而不是指flag为空
Jseven_jy
2010-09-06 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1143万
展开全部
flag = this.dao.doCreate(user);
this.dao.doCreate(user)这个方法你可以按住ctrl然后点击doCreate..

不出意外的话应该是父类的方法了..

所以他让flag=父类的那个方法的返回值..

实际上就是跟直接调用父类那个方法的效果是一样的..

方法中“boolean flag = true;”不是为flag赋予了一个"true"值吗?怎么捕获异常时怎么还能flag = this.dao.doCreate(user); ?
这个问题..一个变量你给他赋个值后当然还可以重新给他一个撒..
flag = this.dao.doCreate(user);就是重新赋值..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kak520
2010-09-06 · TA获得超过687个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:443万
展开全部
是这样的
IUserDAOProxy只是IUserDAO的一个实现模式(可以参见设计模式中的代理),在实际的环境中,具体IUserDAO的实现类并不一定只是IUserDAOProxy,IUserDAOProxy只是公开的一个实现类,那么我举个例子来说明这个好处吧:

如:权限管理中,我们针对不同的用户权限定制了不同的IUserDAO实现类,管理员为:AdminDAO extends IUserDAO,匿名用户为:GuessDAO extends IUserDAO,那么在IUserDAOProxy类中,private IUserDAO dao的实例并不是IUserDAOProxy本身,而是AdminDAO或GuessDAO,那么他们实现的doCreate方法是不一样的,这样可以在不修改原有代码的基础上不断定义新的IUserDAO实现类来扩充系统的功能,真正实现开-闭原则(具体请参考设计模式一书)。

而在楼主提供的代码中,实现的实现类是IUserDAOImpl。IUserDAOProxy只是提供了一种默认的返回机制(也就是说你的IUserDAO实现类中的doCreate方法什么都不做,也可以让你的代码能按照你想要提供的默认方式执行)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式