首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Exception in thread "main" java.lang.NullPointerException大神们这是什么有关问题

2012-02-05 
Exception in thread main java.lang.NullPointerException大神们这是什么问题package learnimport jav

Exception in thread "main" java.lang.NullPointerException大神们这是什么问题
package learn;
import java.util.*; 
import java.io.*;
public class Tyg {

/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
  EnMan en=new EnMan();
  BufferedReader re=new BufferedReader (new InputStreamReader(System.in));
  while(true){
  System.out.println("请选择你要进行的操作:");
  System.out.println("1:表示添加一个雇员");
  System.out.println("2: 表示显示一个雇员");
  System.out.println("3:表示修改一个雇员");
  System.out.println("4:表示删除一个雇员");
  System.out.print("5:表示退出系统");
  String operaType=re.readLine();
  if(operaType.equals("1")){
  System.out.println("雇员的名字为:");
  String name=re.readLine();
  System.out.println("雇员的编号为:");
  String no=re.readLine();
  System.out.println("雇员的薪水为:");
  float sal=Float.parseFloat(re.readLine());
  Emg em=new Emg(name,no,sal);
  en.addE(em);
   
   
  }  
  else if(operaType.equals("2")){
  System.out.println("请输入编号:");
  String no=re.readLine();
  en.showInfo(no);
   
  }
  else if(operaType.equals("3")){
  System.out.println("请输入编号:");
  String no=re.readLine();
  System.out.println("请输入薪水:");
  float newsal=Float.parseFloat(re.readLine());
  en.changeE(no, newsal);
   
   
  }
  else if(operaType.equals("4")){
  System.out.print("请输入编号:");
  String no=re.readLine();
  en.delE(no);
  }
  else if(operaType.equals("5")){
  System.exit(0);
  }
  }
   
   
}

}
class Emg
{
  privateString name;
  privateString no;
private float sal;
public Emg(String name,String no,Float sal)
{this.name=name;
this.no=no;
this.sal=sal;
 
  }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}

}
class EnMan
{
  private ArrayList al=null;
 
  public void EnMan(){
  al=new ArrayList();  
 
 
 } 
  public void addE(Emg e1){

al.add(e1);
  }
  public void showInfo(String no){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
System.out.println("该员工的信息是:");
System.out.println("该员工的编号是"+no);
System.out.println("该员工的工资是"+e2.getSal());


System.out.println("该员工的姓名是"+e2.getName());
 
}

  }
  //修改工资
  public void changeE(String no,Float newsal){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
e2.setSal(newsal);
}

 
  }
  public void delE(String no){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
al.remove(i);
//al.remove(e2);
}

 
  }
}


[解决办法]
[code=Java][/code]

package com.luotq.test;

import java.util.*;
import java.io.*;

public class Tyg {

/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
EnMan en = new EnMan();
BufferedReader re = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.println("请选择你要进行的操作:");
System.out.println("1:表示添加一个雇员");
System.out.println("2: 表示显示一个雇员");
System.out.println("3:表示修改一个雇员");
System.out.println("4:表示删除一个雇员");
System.out.print("5:表示退出系统");
String operaType = re.readLine();
if (operaType.equals("1")) {
System.out.println("雇员的名字为:");
String name = re.readLine();
System.out.println("雇员的编号为:");
String no = re.readLine();
System.out.println("雇员的薪水为:");
float sal = Float.parseFloat(re.readLine());
Emg em = new Emg(name, no, sal);
en.addE(em);

} else if (operaType.equals("2")) {
System.out.println("请输入编号:");
String no = re.readLine();
en.showInfo(no);

} else if (operaType.equals("3")) {
System.out.println("请输入编号:");
String no = re.readLine();
System.out.println("请输入薪水:");
float newsal = Float.parseFloat(re.readLine());
en.changeE(no, newsal);

} else if (operaType.equals("4")) {
System.out.print("请输入编号:");
String no = re.readLine();
en.delE(no);
} else if (operaType.equals("5")) {
System.exit(0);
}
}

}

}

class Emg {
private String name;

private String no;

private float sal;

public Emg(String name, String no, Float sal) {
this.name = name;
this.no = no;
this.sal = sal;

}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getNo() {
return no;
}

public void setNo(String no) {
this.no = no;
}

public float getSal() {
return sal;
}

public void setSal(float sal) {
this.sal = sal;
}

}

class EnMan {
private static ArrayList al = null;

static {
al = new ArrayList();
}

public void addE(Emg e1) {

al.add(e1);
}

public void showInfo(String no) {
for (int i = 0; i < al.size(); i++) {
Emg e2 = (Emg) al.get(i);
if (e2.getNo().equals(no)) {
System.out.println("该员工的信息是:");
System.out.println("该员工的编号是" + no);
System.out.println("该员工的工资是" + e2.getSal());
System.out.println("该员工的姓名是" + e2.getName());

}
}
}

// 修改工资
public void changeE(String no, Float newsal) {
for (int i = 0; i < al.size(); i++) {


Emg e2 = (Emg) al.get(i);
if (e2.getNo().equals(no)) {
e2.setSal(newsal);
}
}

}

public void delE(String no) {
for (int i = 0; i < al.size(); i++) {
Emg e2 = (Emg) al.get(i);
if (e2.getNo().equals(no)) {
al.remove(i);
//al.remove(e2);
}
}

}
}
试试
[解决办法]
楼上正解。。

热点排行