Java 如果(specialmarkId!=null){….}被忽略

Java 如果(specialmarkId!=null){….}被忽略,java,sql,jpa,Java,Sql,Jpa,我使用的是使用Java1.8自动生成的NetBeans8的JPAController public void create(Physical physical) { if (physical.getTalentCollection() == null) { physical.setTalentCollection(new ArrayList<Talent>()); } EntityManager em = nul

我使用的是使用Java1.8自动生成的NetBeans8的
JPAController

public void create(Physical physical) {
        if (physical.getTalentCollection() == null) {
            physical.setTalentCollection(new ArrayList<Talent>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Specialmark specialmarkId = physical.getSpecialmarkId();
            System.out.println(specialmarkId+ "...nullValue");
           if (specialmarkId != null) {
                System.out.println(specialmarkId+ "...ain't right");
                specialmarkId = em.getReference(specialmarkId.getClass(), specialmarkId.getId());
                physical.setSpecialmarkId(specialmarkId);
            }
.....
}
输出
“null…不正确”
显示
如果(specialmarkId!=null){…}
被忽略,即使
specialmarkId
为null


为什么
(specialmarkId!=null){…}
不起作用?

我想
specialmarkId
不是真的为null,但是
specialmarkId.toString()
会被覆盖以返回字符串
“null”

而不是

System.out.println(specialmarkId+ "...nullValue");
试试像这样的东西

System.out.println((specialmarkId != null?
        specialmarkId.toString() + "(not  null)": "(this IS REALLY NULL)")
        + "...nullValue");

您知道如何添加断点并检查变量吗?如果没有,那么您应该学习如何调试,因为您将需要它。
System.out.println((specialmarkId != null?
        specialmarkId.toString() + "(not  null)": "(this IS REALLY NULL)")
        + "...nullValue");