首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程"Thread-5“java.lang.NullPointerException中的异常

线程"Thread-5“java.lang.NullPointerException中的异常
EN

Stack Overflow用户
提问于 2013-12-30 05:57:40
回答 1查看 5.1K关注 0票数 1

在运行代码时,我面临以下错误:

代码语言:javascript
复制
Exception in thread "Thread-5" java.lang.NullPointerException at 
com.example.example1.service.RecordData.run(RecordData.java:87)

这是我的节目:

代码语言:javascript
复制
public class SearchParser {

public static void main(String[] args) {
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "share";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";

    try {
        List<RecordData> list = new ArrayList<RecordData>();
        Connection conn = DriverManager.getConnection(url + dbName,
                userName, password);

        Statement stmt = conn.createStatement();
        ResultSet mysqldata = stmt
                .executeQuery("select * from product_links");
        while (mysqldata.next()) {

            RecordData data = new RecordData();
            data.setId(mysqldata.getInt("id"));
            data.setDomain_name(mysqldata.getString("domain_name"));
            data.setCommon_link_name(mysqldata
                    .getString("common_link_name"));
            data.setHead_element_pattern(mysqldata
                    .getString("head_element_pattern"));
            data.setProduct_title_pattern(mysqldata
                    .getString("product_title_pattern"));
            data.setProduct_link_pattern(mysqldata
                    .getString("product_link_pattern"));
            data.setCurrent_price_pattern(mysqldata
                    .getString("current_price_pattern"));
            data.setImage_src_pattern(mysqldata
                    .getString("image_src_pattern"));
            data.setDecscription_pattern(mysqldata
                    .getString("decscription_pattern"));
            list.add(data);
        }
        for (RecordData data : list) {
            RecordData p = new RecordData();
            p.start();
        }

    } catch (Exception e) {
        System.out.print(e);
    }

}

}

它基本上是一个从数据库中获取数据的程序。

代码语言:javascript
复制
public class RecordData extends Thread {
    int id;
    String domain_name, common_link_name, head_element_pattern, product_title_pattern, product_link_pattern, current_price_pattern, image_src_pattern,
            decscription_pattern;
    public RecordData data;

    public RecordData() {
        this.data = data;
    }

    public long getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getDomain_name() {
        return domain_name;
    }

    public void setDomain_name(String domain_name) {
        this.domain_name = domain_name;
    }

    public String getCommon_link_name() {
        return common_link_name;
    }

    public void setCommon_link_name(String common_link_name) {
        this.common_link_name = common_link_name;
    }

    public String getHead_element_pattern() {
        return head_element_pattern;
    }

    public void setHead_element_pattern(String head_element_pattern) {
        this.head_element_pattern = head_element_pattern;
    }

    public String getProduct_title_pattern() {
        return product_title_pattern;
    }

    public void setProduct_title_pattern(String product_title_pattern) {
        this.product_title_pattern = product_title_pattern;
    }

    public String getProduct_link_pattern() {
        return product_link_pattern;
    }

    public void setProduct_link_pattern(String product_link_pattern) {
        this.product_link_pattern = product_link_pattern;
    }

    public String getCurrent_price_pattern() {
        return current_price_pattern;
    }

    public void setCurrent_price_pattern(String current_price_pattern) {
        this.current_price_pattern = current_price_pattern;
    }

    public String getImage_src_pattern() {
        return image_src_pattern;
    }

    public void setImage_src_pattern(String image_src_pattern) {
        this.image_src_pattern = image_src_pattern;
    }

    public String getDecscription_pattern() {
        return decscription_pattern;
    }

    public void setDecscription_pattern(String decscription_pattern) {
        this.decscription_pattern = decscription_pattern;
    }

    public void run() {
        System.out.println(data.domain_name);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-30 05:58:36

因为这个

代码语言:javascript
复制
public RecordData() {
    this.data = data;
}

绝对什么都不做。您正在将一个字段分配给自己。因为它启动了null,所以它也以null结束。

我不知道您想要实现什么,但是您可能希望为data分配一些其他的价值。

代码语言:javascript
复制
public RecordData(RecordData data) {
    this.data = data;
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20834161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档