解决方案 »
- super也无能为力?我感觉我跑偏了~
- 关于RandomAccessFile的read(c, 0, 5)方法的疑问,请帮忙!
- JAVA 处理大图片(jpeg) 内存溢出的问题!100分
- EXception in thread "main" java.lang.NoClassDefFoundError:welcome 是什么意思
- JSplitPane分隔条颜色
- 谁可以给我建议一本关于JAVA2规范的书!!
- 如何实现在内网通过程序直接访问外网的资源
- 兄弟们,帮帮忙呀,好急!
- 分享Java连接VPN的程序代码,之前上传的代码存在一些缺陷,现在更正过后在Win7下测试可用了
- jbuiler7下载后还没有用就过期了??
- SQL中数据库的附加问题求解!谢谢!
- 关于static关键字的一个小小疑惑,求教~~~~~~~
一个是 Integer test
一个是 AClass a
你让 test = a 明显不行嘛
麻烦认真点,看版本四,int是可以自动转换为Integer的,这是java的自动转换机制
Java自动装/拆箱下,三目运算符的潜规则
import java.util.HashMap;
import java.util.Map;class AClass {
private Integer a;
private int numb;
public void setNumb(int numb)
{
this.numb=numb;
}
public int getNumb()
{
return numb;
}
public Integer getA() {
return a;
}
public void setA(Integer a) {
this.a = a;
}
}
public class NumberTest {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
AClass a = new AClass();
a.setA(40);//在这里设置值,当你去取的时候就不会是空的了.
a.setNumb('a');//
/*
当你用Integer来接收三目运算的值时,你就只能返回int或Integer或者能隐式转换为int(Integer)类型的值.
*/
Integer test = (map.get("d")!= null) ? a.getA() : 'a';
System.out.println(test);
}
}
你可能理解错了我的意思,我知道你这样可用,我问的是为什么直接赋值为null就可以,但是用三目运算符中的对象来get却不行,不过谢谢你的回答,三楼和五楼已经解答了,我用反编译工具看了class文件,确实如那篇博文所说