错误:NullPointerAccess:变量 ""在这个位置只能为空 [英] Error: NullPointerAccess: The variable " " can only be null at this location

查看:55
本文介绍了错误:NullPointerAccess:变量 ""在这个位置只能为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个 Web 服务,用于查询我的数据库并返回数据库中对象的列表.我收到错误消息:NullPointerAccess:变量varname"在此位置只能为空.无论我把变量放在哪里,我都会收到相同的警告.无论我在变量中放入什么,它都会返回 null.下面是它发生的方法:

I am creating a web service that queries my database and returns a list of the object in the database. I get the error: NullPointerAccess: The variable "varname" can only be null at this location. No matter where I put the variable, I get the same warnings. No matter what I put inside the variable, it returns null. Below is the method that it occurs in:

    public List<Contacts> getUsers()
  {     String test = null;
        String username = "root";
        String password = "ticket";
        String tablename = "users";
        String fieldname = "*";
        String query = "SELECT " + fieldname + " FROM " + "android." + tablename + ";";

        Contacts cont = new Contacts();
        List<Contacts> lstc = null;

        /* this chnk of code can appear more or less verbatim */
        /* in your database apps (including JSPs) */
        String url = "jdbc:mysql://"my IP address":3306/android";
        try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection con = DriverManager.getConnection(url, username, password);
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);


        while (rs.next()){
            if (!(rs.getString("username") == null)){
             cont.setUsername(rs.getString("username"));
            }
            if (!(rs.getString("location") == null)){
             cont.setLocation(rs.getString("location"));
            }
            if (!(rs.getString("updated_at") == null)){
             cont.setUpdated_at(rs.getDate("updated_at"));
            }
            if (!(rs.getString("idUsers") == null)){
             cont.setId(rs.getInt("idUsers"));
            }
        }

        rs.close();
        stmt.close();
        con.close();
        }catch(Exception e){
            test = e.toString();
        }
         lstc.add(cont); //THIS IS THE VARIABLE THAT IS GIVING THE WARNINGS
        test = "blahbadslf";
        return lstc;
        }

收到警告的变量是我的 List lstc 变量.当我尝试将对象添加到列表时,出现错误.任何帮助将非常感激.这是以防万一的类:

The variable that is getting the warnings is my List lstc variable. When I try to add a Object to the List I get the errors. Any help would be much appreciated. Here is the Class just in case:

public class Contacts{
private int id;
private String username;
private String location;
private Date updated_at;

public void setId(int id) {
    this.id = id;
}
public int getId() {
    return id;
}
public void setUsername(String username) {
    this.username = username;
}
public String getUsername() {
    return username;
}
public void setLocation(String location) {
    this.location = location;
}
public String getLocation() {
    return location;
}
public void setUpdated_at(Date updated_at) {
    this.updated_at = updated_at;
}
public Date getUpdated_at() {
    return updated_at;
}

}

谢谢!

推荐答案

您收到该消息是因为:

List<Contacts> lstc = null;

你的意思是:

List<Contacts> lstc = new ArrayList<Contacts>();

顺便说一句:

你有第二个错误:

    Contacts cont = new Contacts();  // you only create one of these

更好:

    while (rs.next()){
        Contacts cont = new Contacts();  // move to within the loop so one is created for every row in the result set

这篇关于错误:NullPointerAccess:变量 &amp;quot;&quot;在这个位置只能为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆