JAVA报错:The operator != is undefined for the argument type(s) int,null
type.setParent(new ProductType(formbean.getParentid()));
这个表达式里面为什么会报错啊:The operator != is undefined for the argument type(s) int,null 把null改成1就可以了 我的跟老师的代码一样啊,为什么我的会报错呢
formbean.getParentid()!= null 是这句报错的 展开
null只是对对象有用,基本类型没有null。
package cn.edu.shu.web.test;
public class TestInteger {
public static void main(String[] args) {
/**
* 问题来源是在Struts2的action中,如果从session中取值,如果取不到的话,那么应该为null,由于我将其强转为Integer类型了,其后再将其与Integer比较时,居然抛空指针异常
*/
Object one = null;
Integer two = (Integer) one;
System.out.println(null == two);// out put true
System.out.println(two instanceof Integer);// out put false
System.out.println(two instanceof Object);// out put false
// System.out.println(0 == two);// 抛出空指针异常
// 思索,由于JDK有自动拆装箱操作,所以即使用的是Integer,其也会被拆箱为int类型,这样在使用操作符时,不满足int型和null型比较
// 编译错误: The operator == is undefined for the argument type(s) int, null
System.out.println(0 == null);
}
}
扩展资料
JAVA报错:The operator % is undefined for the argument type(s) int, String
import javax.speech.Central;
import javax.speech.EngineException;
import javax.speech.synthesis.*;
public class TrySpeech {
static Synthesizer synthesizer;
public static void main(String[] args) {
try {
synthesizer = Central.createSynthesizer(null);
synthesizer.allocate(); //这行运行时抛出空指针异常
} catch (EngineException e) {
}try {
synthesizer.speak("Hello I am a computer", null);synthesizer.speak("Hello I am a <EMP>computer</EMP>", null);
synthesizer.speak("Hello I am a <PROS PITCH=\" 10% \">computer</PROS>", null);
} catch (Exception e) {e.printStackTrace();
}
}}
参考资料:百度百科 - JAVA
null只能用在对象和String上
你这个报错和
int i = 0;
if (i == null)
的错误是一样的
null只是对对象有用.
基本类型没有null.
2021-05-19