//通过编译,但运行时发生这个java.lang.NullPointerException错误
我的代码如下:
interface User
{
  public abstract void   setUser_id(String user_id);
  public abstract String getUser_id();
}
abstract class AbstractUser implements User{
  private String user_id;
  public void setUser_id(String user_id){   
  this.user_id = user_id; 
  }
  public String getUser_id(){
  return user_id;
  }
}
class SqlUser extends AbstractUser{
User user=null ;
public User getUser(String ID)
{         
user.setUser_id(ID);
return user; 
}   

public class Test
{
public static void main(String[] args)
{
System.out.println("开始了:");   
        SqlUser sqlUser=new SqlUser();
        User user= sqlUser.getUser("测试");
}
}

解决方案 »

  1.   

    interface   User
    {
        public   abstract   void   setUser_id(String   user_id);    public   abstract   String  getUser_id();
    }
    这就断了
      

  2.   

    多谢楼上的,不过。如何让user.setUser_id(ID);中的user不为空?我定义的User是一个接口,不能用new ,而我又要改写接口中的数据,我当如何?
      

  3.   

    你写的实在是...
    public class SqlUser extends   AbstractUser{
    //    User   user=null   ;
        public   User   getUser(String   ID)
        {
    //    user.setUser_id(ID);
            setUser_id(ID);
        return   this;
        }}
    public class Test {
        public static void main(String[] args) {
            System.out.println("开始了: ");
            User sqlUser = new SqlUser().getUser("测试 ");
    //        User user = sqlUser.getUser("测试 ");
            System.out.println(sqlUser.getUser_id());
        }
    }