public class CollectionsOperation
{
private List<Client> bufferedReaderClientLIst =
Collections.synchronizedList(new ArrayList<Client>());
BufferedReader bf = null;
private static final String fileName = "clients.txt";
public void bufferedReaderCollection()
throws IOException
{
String line;
try {
bf = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName), "UTF-8"));
while ((line = bf.readLine()) != null) {
String[] split = line.split(";");
String nameCompany = split[0].substring(2);
String adress = split[1];
String phoneNumber = split[2];
String emailAdress = split[3];
Client k = new Client(nameCompany, adress, phoneNumber, emailAdress);
bufferedReaderClientLIst.add(k);
}
} catch (IOException e) {
}
}
public void runBufferedReader()
{
Thread t = new Thread(new CreateList());
t.start();
}
public void show()
{
System.out.println(bufferedReaderClientLIst);
}
private class CreateList implements Runnable
{
@Override
public void run()
{
CollectionsOperation o = new CollectionsOperation();
try {
o.bufferedReaderCollection();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
您好,我在显示外部类的列表时遇到问题。我尝试使用public void show()方法,但列表为空。我认为问题出在线程上,这可能吗?谁能...
o.show()
。由于此列表是可变的,并且不固定。如果确定在o.show
CreateList::run
创建了CollectionsOperation
的新实例。因此,原始对象方法show
将无法访问相同的数据。