import java.io.*;
import java.util.*;
public class DAOImpl implements DAO
{
String xs[];
public String[] readRecord()
{
try
{
BufferedReader br=new BufferedReader(new FileReader("insurance.db"));
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
List<String> al1= new ArrayList<String>();
String next;
while((next=br.readLine())!=null)
{
al1.add(next);
}
System.out.println("Enter record number to read:");
int x=Integer.parseInt(br1.readLine());
String stream=(al1.get(x-1));
String[] xs=stream.split(":");
}
catch (FileNotFoundException ex)
{
ex.printStackTrace();
}
catch (IOException ex)
{
ex.printStackTrace();
}
return xs;
}
public static void main(String args[])throws Exception
{
DAOImpl d=new DAOImpl();
String as[]=d.readRecord();
//here compiler saying nullpointerexcdeption
for(int v=0;v<as.length;v++)
{
System.out.println(as[v]);
}
}
}
問題は、オブジェクトを宣言してからreadRecord()を呼び出すことにあると思います。主な問題は、readRecord()メソッドに返した配列にあります。オブジェクトを作成してreadRecord()を呼び出すと、String[]内のすべてのデータがとして返されます。しかし、nullPointerExceptionを与えるそのコンパイラを実行していません。