gpt4 book ai didi

java - 不可比拟的 Java 类型 boolean 和 object

转载 作者:行者123 更新时间:2023-11-29 05:33:04 25 4
gpt4 key购买 nike

我有这段代码可以在 Java 6 中运行

if(false==sess.getAttribute("admin") || null==sess.getAttribute("admin"))
{
res.sendRedirect("/myapp/login.jsp?errmsg=You must log in as an administrator to manage resources");
return;
}

我想熟悉 Java 7 的新功能以及它在 javaee 中提供的新功能,因此我将 netbeans 升级到 7.4 和 jdk 7u45。我的项目成功打开,但是带有此代码的文件被 netbeans 标记为带有错误的 java 类。运行项目出现错误

java.lang.RuntimeException: Uncompilable source code - incomparable types: boolean and java.lang.Object 

我想问的是为什么这在java6中有效而在java7中无效

仅供引用 HttpSession sess = req.getSession();

最佳答案

HttpSession.getAttribute 返回一个对象。将行更改为 (Boolean.FALSE==sess.getAtrribute)

看起来自动装箱( boolean 值到 boolean 值)在 Java 中发生了变化。很遗憾,我无法重现您的错误。我在同一个 Netbeans 7.4/jdk 7u45 中看到了类似的错误消息。我的代码:

if (true == evt.getNewValue())

(其中 evt 是 PropertyChangeEvent)Netbeans 中的消息(当我将鼠标悬停在语句左侧的红十字上时)说“无与伦比的类型: boolean 值和对象”。请注意您的消息的不同之处:对象之前缺少“java/lang”。甚至更奇怪:我的代码编译没有任何问题。Netbeans 中的编译器选项是:“-version -Xlint:unchecked -Xlint:deprecation”

关于java - 不可比拟的 Java 类型 boolean 和 object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com