java - 混淆java中的 "==null"和 "==" ""?

标签 java if-statement null is-empty

我有一个与 ==null=="" 相关的简单问题,我想每个人都知道这个问题。

这是一个例子:

@SuppressWarnings("unchecked")
public void reorderingCriteia() {
    ListModelList<ReorderData> headerList = new ListModelList<ReorderData>();
    List<String> headerId = new ArrayList<String>();
    String userReorderSelection = Services.userPreferenceService().getUserPreference().getUserOption("PROCESS_CHECKLIST_COLUMN_REORDER");

    if (userReorderSelection == null || userReorderSelection == "") {
        int i = 0;
        for (ReorderData rd : availableReorderList) {
            headerList.add(rd);
            headerId.add("" + i);
            i++;
        }

        folderProcessModel.setHeaderList(headerList);
        folderProcessModel.setHeaderId(headerId);

    } else {
        headerList = ReorderDialogViewModelNew.jsonStringToList("FOLDER_PERMIT_LIST_COLUMN_REORDER", userReorderSelection, false);
        headerId = compHelper.intializeSequnce(headerList, folderProcessModel.getAvailableHeaders());
        folderProcessModel.setHeaderList(headerList);
        folderProcessModel.setHeaderId(headerId);

    }
}

我有一些问题:

  1. 这里的代码使用 if (userReorderSelection == null || userReorderSelection == "")。我可以使用这个条件 if (userReorderSelection == null) 吗?

  2. 两者有什么区别?

最佳答案

== null 检查 null 引用。

== "" 检查空白/空字符串引用。在这里您可以使用 str.equals("") 来检查字符串是否为空/空白。 == 用于对象引用检查。或者您可以使用 String.isEmpty() 进行检查。

此外,如果您只使用 if (userReorderSelection == null),那么您将只检查 userReorderSelection 是否为 null与否,它不会判断字符串是否为空。

关于java - 混淆java中的 "==null"和 "==" ""?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20185941/

相关文章:

java - Java 中的 For-Each 和指针

java - SWT 滚动条上的鼠标事件

java - 即使具有 transient ApplicationContext UI 的成员,XmlWebApplicationContext 的 Vaadin Spring Addon NotSerializedException

c# - wcf方法参数中的反序列化json为空

ios - 如何检查 View 是否有标签?

postgresql - 如何从 postgres 分组集查询中删除空值

java - 线索消失得无影无踪

JavaScript IF 语句 boolean 严格

php - 根据 PHP 或 Javascript IF 和 ELSE 测试的结果显示 Google Adsense 代码

使用if语句和相似数量的样本进行R采样