java编译提示错误_Java编译能通过,但是运行的时候提示有错误

Java编译能通过,但是运行的时候提示有错误。

提示出现这样的错误:

Exception in thread "main" java.lang.ExceptionInInitializerError

at org.idea.ok.Person.main(Person.java:32)

Caused by: java.lang.NullPointerException

at org.idea.ok.Gender1.(Gender1.java:28)

at org.idea.ok.Gender1.(Gender1.java:17)

... 1 more

原程序如下:

package org.idea.ok;

/*

*枚举类

*既可以通过public访问权限的静态常量来访问实例;

*也可以通过Gender1类的getInstance静态方法来访问实例变量。

*/

import java.io.Serializable;

import java.util.Collection;

import java.util.Collections;

import java.util.NoSuchElementException;

import java.util.Map;

import java.util.HashMap;

public class Gender1 implements Serializable {

public static final Gender1 FEMALE = new Gender1(new Character('F'), "FEMALE");

public static final Gender1 MALE = new Gender1(new Character('M'), "MALE");

private final Character sex;

private final transient String description;

private static Map instancesBySex =

new HashMap();

private Gender1(Character sex, String description) {

this.sex = sex;

this.description = description;

instancesBySex.put(sex, this);

}

public Character getSex() {

return sex;

}

public String getDescription() {

return description;

}

public static Collection getAllValues() {

return Collections.unmodifiableCollection(instancesBySex.values());

}

public static Gender1 getInstance(Character sex) {

/*按照参数指定的性别缩写查找Gender1实例*/

Gender1 result = (Gender1)instancesBySex.get(sex);

if (result == null) {

throw new NoSuchElementException(sex.toString());

}

return result;

}

public String toString() {

return description;

}

private Object readResolve() {

/*保证反序列化时直接返回Gender1类包含的静态实例*/

return getInstance(sex);

}

}

package org.idea.ok;

/*

*/

public class Person {

private String name;

private Gender1 gender;

public Person(String name, Gender1 gender) {

this.name = name;

this.gender = gender;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Gender1 getGender() {

return gender;

}

public void setGender(Gender1 gender) {

this.gender = gender;

}

public static void main(String[] args) {

Person mary = new Person("Mary", Gender1.FEMALE);

System.out.println("name = " + mary.getName() + "\t" + "gender = " + mary.getGender());

}

}

程序异常提示是:初始化的时候错误;但是造成这种异常的根源是Gender1中的代码的问题。这个我还真是找不出来了,麻烦谁能找出来的,小弟不胜感谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值