空指针异常怎么处理

qq_36873640 2016-12-08 08:46:57
public abstract class Property {
protected int HP; //血量
protected int MP; //蓝量
protected int ATK; //攻击力
protected int DEF; //防御力
protected int range; //射程
}
public abstract class Hero {
protected Property p; //属性
protected Wallet w; //钱包
protected Weapon t; //武器
protected Clothes c; //衣服
protected Jewelry j; //首饰

public Hero(){

}
public Hero(int HP,int MP,int ATK,int DEF,int range) {
p.HP=HP;
p.MP=MP;
p.ATK=ATK;
p.DEF=DEF;
p.range=range;
}
}
public class Rabbi extends Hero{
public Rabbi() {
super(4000,2500,200,80,550); //设置法师初始属性
}

public void info() {
File file1 = new File("D:\\法师基础属性.txt");
BufferedWriter bw = null;
try {
FileWriter fw = new FileWriter(file1);
bw = new BufferedWriter(fw);
bw.write("法师:远程英雄,伤害较高,持续输出能力强,一般充当队伍输出角色,"
+ "缺点是血量较低,技能冷却时间较长。" +"\r\n"
+ "法师的初始属性为:" + "\r\n"
+ "血量为:"+ p.HP + "\r\n"
+ "蓝量为:" + p.MP + "\r\n"
+ "攻击力为:" + p.ATK + "\r\n"
+ "防御力为:" + p.DEF + "\r\n"
+ "射程为:" + p.range);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行info方法时出现空指针异常了,为什么会这样,该怎么解决,求大神帮帮忙,谢谢了!
...全文
274 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱睡觉的阿狸 2016-12-08
  • 打赏
  • 举报
回复
Property类去掉abstract,protected Property p改为protected Property p = new Property()
qq_36873640 2016-12-08
  • 打赏
  • 举报
回复
那请问要怎么修改好呢
自由自在_Yu 2016-12-08
  • 打赏
  • 举报
回复
爱睡觉的阿狸 2016-12-08
  • 打赏
  • 举报
回复
Property p初始化的后是null,你在构造函数里给它赋值会报空指针异常
  • 打赏
  • 举报
回复
引用 2 楼 qq_36873640 的回复:
就info()方法里的p.hp,p.mp那些去掉 还有Warrior构造方法去掉就不会报异常
回复的话引用我,这样我就能看到,把你怎么改的贴出来
萧乡月夜 2016-12-08
  • 打赏
  • 举报
回复
建议楼主看看书补补基础,不要开始就用试错来学习
  • 打赏
  • 举报
回复
protected Property p; //属性 这个玩意没有初始化
qq_36873640 2016-12-08
  • 打赏
  • 举报
回复
就info()方法里的p.hp,p.mp那些去掉 还有Warrior构造方法去掉就不会报异常
  • 打赏
  • 举报
回复
看看哪一行空了,为什么空了,是不是对应目录的文件不存在造成的

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧