java - java 空赋值行为

标签 java eclipse

我的日期格式会根据某些条件发生变化,为了具有全局访问权限,我初始化它们,然后根据条件分配一个值。

但是查看 De-bugger,这些值没有被重新分配,它们在初始化时保持为空。

我是java新手,导致这个问题的赋值行为是什么?

代码如下:

SimpleDateFormat df     = null;
        SimpleDateFormat df2    = null;
        SimpleDateFormat date_c = null;
        SimpleDateFormat t      = null;
        SimpleDateFormat t2     = null;
        SimpleDateFormat df5    = null;
        SimpleDateFormat df3    = null;

        if ( make == "NCR")
        {
        df     = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        df2    = new SimpleDateFormat("yyyyMMddHHmmss");
        date_c = new SimpleDateFormat("yyyyMMdd");
        t      = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        t2     = new SimpleDateFormat("yyyyMMddHHmmss");
        df5    = new SimpleDateFormat("yyyyMMddHHmmss");
        df3    = new SimpleDateFormat("yyyyMMddHHmmss");
        }

        else if ( make == "WINCORE")
        {
            df     = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
            df2    = new SimpleDateFormat("yyyyMMddHHmmssS");
            date_c = new SimpleDateFormat("yyyyMMdd");
            t      = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
            t2     = new SimpleDateFormat("yyyyMMddHHmmssS");
            df5    = new SimpleDateFormat("yyyyMMddHHmmssS");
            df3    = new SimpleDateFormat("yyyyMMddHHmmssS");
        }

最佳答案

因为两个条件都不满足。您使用 == 进行字符串比较,这很可能是一个错误。 == 比较对象身份,字符串是对象。对于基于值的比较,您应该使用equals。将文字放在左侧可提供 null 安全比较(这是常见的 Java 习惯用法):"NCR".equals(make)。但如果 make 不是 null 或者您想要 NullPointerException,您也可以使用 make.equals("NCR")对于 null make

比较以下内容:

assert "NCR" == "NCR" : "String literals are interned, so they have the same identity";
assert "NCR" != new String("NCR") : "String with the same value but not the same identity"; 
assert "NCR".equals(new String("NCR")) : "But they are equal";

关于java - java 空赋值行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17447291/

相关文章:

java - 绑定(bind)到标签时格式化整数

java - 在 libgdx gwt Web 应用程序中找不到字体文件

javascript - Java - 在 Eclipse 动态 Web 项目中将 javascript 连接到 servlet

java - 在字符串更改为稍后使用之前设置它的最后状态

java - PHP 相当于 Java 的 Character.getNumericValue(char c)?

java - 使用可变参数时出现意外行为 - java

android - 将 ADT 安装到 eclipse -noob 警告中的问题

java - 如何使用搜索功能使过滤后的项目显示在 ListView 中(android)

java - SQL 查询正常,但使用 Hibernate "Multiple ResultSets were returned by the query."- 错误

eclipse - Ctrl + Space 不适用于 Eclipse 上的内容辅助