`
yzhming
  • 浏览: 33048 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[]list != null 和 !list.isEmpty()差别

    博客分类:
  • java
 
阅读更多
转载
http://hi.baidu.com/oritenson/blog/item/63896c3e9ad981fc3d6d97bc.html

在我们进行遍历展示数据的时候经常会把数据封装到List<your JavaBean>中,然后传递到页面(JSP)端进行显示,这时候我们经常在Action里声明一个Null的List<your JavaBean>,然后调用处理方法,把这个Null的List赋值,赋值之后肯定要判断是否成功赋值,代码如下:

        List<Employee> list = null;
        list = EmployeeService.getInstance().getEmployees();
        if( list == null){
            /**
             * failure
             */
            errors.add("skimEmployee.failure", new ActionMessage("skimEmployee.failure"));
        }else{
            /**
             * success
             */
            result = "success";
            request.getSession().setAttribute("listEmployee", list);
        }

上面就是我经常写的代码,今天就出问题了,在实际处理端,我们同时也会声明一个List<your JavaBean>,并且用ArrayList<your JavaBean>初始化,然后把RS生成的对象放到List中,最后传递给那面的Action。代码如下:

        List<CommonTask> list = null;
        Connection conn = DBMysql.getConnection();
        String sql = "select * from task ";
        Statement stmt = DBMysql.getStatement(conn);
        ResultSet rs = DBMysql.getResultSet(stmt, sql);
        list = new ArrayList<CommonTask>();
        CommonTask ct = null;
        try {
            while(rs.next()){
                ct = new CommonTask();

                .....................

由于我们new了List,所以当RS取不到值的时候List实际就不为NULL了,List实际值为 [ ] 。所以action端的list != null,会永远执行。

正确写法;

if( list.isEmpty()){
            /**
             * failure
             */
            errors.add("skimEmployee.failure", new ActionMessage("skimEmployee.failure"));
        }else{
            /**
             * success
             */

       ...........................
分享到:
评论

相关推荐

    基于Java的二叉树层序遍历打印实现.docx

    二叉树层序遍历Ⅰ——剑指offer32-Ⅰ ...q.isEmpty()) { TreeNode node = q.poll(); list.add(node.val); if (node.left != null) q.add(node.left); if (node.right != null) q.add(node.right); }

    自定义Dialog弹窗

    View view = mInflater.inflate(R.layout.diaolog_content_item_center, null); TextView tv = (TextView) view.findViewById(R.id.tv); tv.setText(content); mContentLin.addView(view); } } /** * 设置...

    关于java中链表的用法

    链表类List的源代码如下: import Java.io.*; public class List {  /*用变量来实现表头*/  private Node Head=null;  private Node Tail=null;  private Node Pointer=null;  private int Length=0; ...

    02_SpringCloud客户端负载均衡Ribbon.md

    if(list == null && list.size() ==0){ return null; } //获取服务注册列表的个数 int size = list.size(); int index = requestCount % size; requestCount++; return list.get(index).getUri()....

    android开发的计算器

    = null) { for (int i = 0; i &lt; symbol.size(); i++) { if (symbol.get(i).equals("×") || symbol.get(i).equals("÷")) { String sign = symbol.remove(i); Double n1 = num.remove(i); ...

    基于列表实现的元素迭代器算法(java算法源码)

    if (list.isEmpty())//若列表为空,则 nextPosition = null;//当前元素置空 else//否则 nextPosition = list.first();//从第一个元素开始 } //检查迭代器中是否还有剩余的元素 public boolean hasNext...

    复杂邮件程序完整Java源码,支持添加附件,图片,HTML格式文本,支持远程WebService调用

    import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation....

    HXSDKHelper.java 环信Demo 

    List&lt;EMMessage&gt; messages = (List) event.getData(); HXSDKHelper.getInstance().getNotifier().onNewMesg(messages); } break; // below is just giving a example to show a cmd toast, the app should not ...

    springmvc-jdbcTemplate

    if(list == null) { return null; } List&lt;R&gt; ret = new ArrayList(); for (int i = 0; i &lt; list.size(); i++) { ret.add(mapRowMapper.mapRow(list.get(i), i)); } return ret; } @Override ...

    QQ聊天机器人

    private List&lt;ChatMessage&gt; mDatas = new ArrayList(); /** * 适配器 */ private ChatMessageAdapter mAdapter; private Handler mHandler = new Handler() { public void handleMessage(android.os....

    基于链表节点实现二叉树节点(Java源码)

    Q.isEmpty()) { BinTreePosition u = (BinTreePosition) Q.dequeue();//出队 list.insertLast(u);//访问v if (u.hasLChild()) Q.enqueue(u.getLChild()); if (u.hasRChild()) Q.enqueue(u.getRChild());...

    sql访问数据库工具类--SqlUtils(java源码)

    "is null").setWhereStr("and", "date", "&gt;=", new Date()); utils.setOrderByStr("id", "desc").setOrderByStr("name", "asc"); System.out.println(utils.buildSelectSQL()); System.out.println(utils....

    爬虫例子源代码

    queue.isEmpty()) { url = queue.peek().toString(); try { if (!isSearched(searchsite, url)) { if (isRobotAllowed(new URL(url))) { processHtml(url); } } else { System...

    springboot jpa mysql controller演示

    if (name==null ||name.isEmpty()){ name ="您没有输入名字!"; } model.addAttribute("name", name); return "modeltest"; } /** * 测试 ModelAndView * @param name * @return */ @RequestMapping(...

    java树形结构递归查询

    if (CollectionUtils.isEmpty(list)) { return categoryTree; } for (CategoryDO categoryDO : list) { allDTOList.add(new CategoryTreeDTO().convertDOToDTO(categoryDO)); } //当前等级类目 category...

    Java Oracle分页处理

    if (pagetype == null || pagetype.equals("")) { return true; } else { return false; } } /** * * * */ public ArrayList getResult() { if (!isEmpty()) { if (pagetype....

    Java基于列表实现(无序)词典结构(算法源码)

    List list = new List_DLNode(); Iterator P = L.positions(); while (P.hasNext()) { Position pos = (Position)P.getNext(); Entry entry = (EntryDefault) pos.getElem(); if (T.isEqualTo(entry....

    下载excel表格工具类

    if (null != listLog && listLog.size()&gt;0){ BigDecimal totalPrice = new BigDecimal("0.0");//总金额 int count = 0;//总笔数 for(Map,Object&gt; map : listLog){ totalPrice = totalPrice.add(new BigDecimal...

    zip4j_1.3.2 java代码压缩、解压文件

    StringUtils.isEmpty(passwd)) { parameters.setEncryptFiles(true); parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD); // 加密方式 parameters.setPassword(passwd.toCharArray()); } ...

Global site tag (gtag.js) - Google Analytics