-2

当我尝试使用我构建的仅返回字符串的 getString() 方法从另一个类访问字符串时,我收到 NullPointerException。这是我尝试使用它的地方以及出现异常的地方:

public void storeChar(String str)
{
    wordSeed wrdSd = new wordSeed();
    seed = wrdSd.getSeed();

    for(int i = 0; i < str.length(); i++)
    {
        if(str.contains(seed))
        {
            int temp = str.indexOf(seed, i);
            singleChar.add(str.charAt(temp));
        }
    }
}

我从 wrdSd.getSeed() 获取字符串并将其存储到种子中,但这显然只是将 null 放入种子而不是我想要的。然后,当我尝试使用 str.contains(seed) 时,它会引发异常。

预先感谢您的帮助!

4

3 回答 3

1

尝试检查您的 wordSeed 类并查看初始值是否为空。如果您创建该类的一个实例(全新的,看到“wordSeed wrdSd = new wordSeed();”),那么当您使用 .getSeed() 时,您必须获得一个硬编码的值。

解决此问题的几种方法是使用您设置的相同 wordSeed 实例,或使用静态变量。

于 2013-03-27T20:33:52.607 回答
1

确保在调用之前getSeed(),初始化它。您可以在构造函数中执行此操作,以便在创建 object 时初始化wrdSd该字段。seed

于 2013-03-27T20:36:09.943 回答
0
public class  WordSeed  
{
    private String seed;
    public WordSeed()  
    {
    }   

    public String getSeed()  
    {
          return this.seed;
    }
}  

我认为您当前的实现是您需要添加以下两个选项之一:

private String seed = "";

或者

public WordSeed(String seed)  
{   
        if(null==seed)  
        {  
            this.seed="";
        } else
        { 
           this.seed=seed;  
         }
}  
于 2013-03-27T20:36:02.910 回答