search != null和 !search.isEmpty()有什么区别呢
时间: 2024-06-07 14:05:52 浏览: 16
`search != null` 和 `!search.isEmpty()` 是两个不同的判断条件。
`search != null` 是判断 `search` 这个对象是否为 null。如果 `search` 为 null,那么这个条件表达式的值为 false,否则为 true。
`!search.isEmpty()` 是判断 `search` 所代表的字符串是否为空字符串。如果 `search` 是一个 null 对象,那么这个条件表达式会抛出一个 `NullPointerException` 异常。如果 `search` 是一个空字符串,那么这个条件表达式的值为 false,否则为 true。
因此,这两个条件的作用是不同的。如果你想判断一个字符串是否为空,应该使用 `!search.isEmpty()`。如果你想判断一个对象是否为 null,应该使用 `search != null`。
相关问题
JButton searchButton = new JButton("Search Club"); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String keyword = JOptionPane.showInputDialog(null, "Enter club name:"); if (keyword != null && !keyword.isEmpty()) { searchClub(keyword); } else { refreshClubTable(); } clearMemberTable(); } });
这段代码创建了一个JButton实例对象searchButton,用于显示"Search Club"文本的按钮。接着,为该按钮添加了一个ActionListener监听器,用于监听按钮Action事件。当用户点击按钮时,会触Action事件,执行ActionListener中定义的actionPerformed()方法。
在这个例子中,actionPerformed()方法首先调用JOptionPane.showInputDialog()方法,显示一个输入对话框,提示用户输入俱乐部名称的关键字。用户输入的关键字将会存储在字符串变量keyword中。如果用户输入了关键字,且关键字不为空,那么代码将调用searchClub(keyword)方法,用于搜索符合关键字的俱乐部信息并刷新俱乐部表格。否则,代码将调用refreshClubTable()方法,用于刷新俱乐部表格的全部数据。最后,调用clearMemberTable()方法,用于清空会员表格的数据。
这段代码的主要作用是实现搜索俱乐部的功能,并在数据发生变化后刷新相关的表格数据。searchClub()、refreshClubTable()和clearMemberTable()方法可能是自定义的方法,具体实现可能因应用而异。
public String searchPage(@RequestParam Map<String, Object> params, HttpServletRequest request) { if (StringUtils.isEmpty((CharSequence) params.get("page"))) { params.put("page", 1); } params.put("limit", Constants.GOODS_SEARCH_PAGE_LIMIT); //封装分类数据 if (params.containsKey("goodsCategoryId") && !StringUtils.isEmpty(params.get("goodsCategoryId") + "")) { Long categoryId = Long.valueOf(params.get("goodsCategoryId") + ""); SearchPageCategoryVO searchPageCategoryVO = newBeeMallCategoryService.getCategoriesForSearch(categoryId); if (searchPageCategoryVO != null) { request.setAttribute("goodsCategoryId", categoryId); request.setAttribute("searchPageCategoryVO", searchPageCategoryVO); } } //封装参数供前端回显 if (params.containsKey("orderBy") && !StringUtils.isEmpty(params.get("orderBy") + "")) { request.setAttribute("orderBy", params.get("orderBy") + ""); } String keyword = ""; //对keyword做过滤 去掉空格 if (params.containsKey("keyword") && !StringUtils.isEmpty((params.get("keyword") + "").trim())) { keyword = params.get("keyword") + ""; } request.setAttribute("keyword", keyword); params.put("keyword", keyword); //搜索上架状态下的商品 params.put("goodsSellStatus", Constants.SELL_STATUS_UP); //封装商品数据 PageQueryUtil pageUtil = new PageQueryUtil(params); request.setAttribute("pageResult", newBeeMallGoodsService.searchNewBeeMallGoods(pageUtil)); return "mall/search"; }
这段代码是一个搜索商品的方法。接收一个包含参数的Map和一个HttpServletRequest对象作为参数,返回一个String类型的视图名。
首先,如果参数中没有指定页码,就将页码设置为1。然后将每页显示的商品数量设置为常量值Constants.GOODS_SEARCH_PAGE_LIMIT。
如果参数中包含商品分类ID,并且该ID不为空,就调用newBeeMallCategoryService的getCategoriesForSearch方法获取该分类的信息,并将分类ID和分类信息添加到HttpServletRequest中。
将参数中的排序方式存储到HttpServletRequest中以用于前端回显。
对关键字进行过滤,去掉空格,并将其存储到HttpServletRequest和参数Map中。
将搜索的商品状态设置为上架状态,然后使用参数Map创建一个PageQueryUtil对象,调用newBeeMallGoodsService的searchNewBeeMallGoods方法搜索符合条件的商品并将结果存储到HttpServletRequest的pageResult属性中。
最后,返回视图名“mall/search”。