class MyTest
{
private String a;
private String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
public class Test
{
public static void main(String[] args)
{
Map map = new HashMap();
MyTest test = new MyTest();
test.setA("aaa");
test.setB("bbb");
map.put("0", test);
map.put("1", test);
System.out.println("0000000000000000000000000 = " + ((MyTest)map.get("bbb")).getB()); }}
为什么会出现
Exception in thread "main" java.lang.NullPointerException
at com.dhc.business.test.Test.main(Test.java:36)的结果
{
private String a;
private String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
public class Test
{
public static void main(String[] args)
{
Map map = new HashMap();
MyTest test = new MyTest();
test.setA("aaa");
test.setB("bbb");
map.put("0", test);
map.put("1", test);
System.out.println("0000000000000000000000000 = " + ((MyTest)map.get("bbb")).getB()); }}
为什么会出现
Exception in thread "main" java.lang.NullPointerException
at com.dhc.business.test.Test.main(Test.java:36)的结果
1、将代码进行良好的格式化,以方便阅读。
2、在发帖文本框的上方单击“#”按钮,选择 Java
3、将代码粘贴到【code=Java】和【/code】之间。发出来的帖子就会是下面的效果:public class Hello { // 程序入口
public static void main(String[] args) {
System.out.println("Hello!");
}
}
你可以
map.get("1")
// 程序入口
public static void main(String[] args) {
System.out.println("Hello!");
}
}
但是你在用这个NULL值去得到B属性的时候会发生空值真异常。
可以这样写:public static void main(String[] args)
{
Map map = new HashMap();
MyTest test = new MyTest();
test.setA("aaa");
test.setB("bbb");
map.put("0", test);
map.put("1", test);
if(null != map.get("bbb")){
System.out.println("map:test"+(MyTest)map.get("bbb").getB());
}} }
你的get("bbb") 你并没有放入这个键 所以返回null
然后调用 null 对象的实例方法所以出现java.lang.NullPointerException;
bbb不是test的属性B 设置的么
System.out.println("Hello Java");
}
map.get("bbb")不存在!
顺便测试一下!public static void main(String[] args) {
System.out.println("Hello Java");
}
(MyTest)map.get("bbb")).getB(); 这句话有误,你把这句话修改一下就好了不能写mat.get("bbb")
并在“MyTest类中添加一个
public String toString(){
return b;
}”
在测试中打印出“0000000000000000000000000 = bbb”
不知道这是不是你想要的结果,