无法在java线程内创建for循环-为什么?

无法在java线程内创建for循环-为什么?,java,multithreading,Java,Multithreading,我的代码如下 public void incomingMessageThread() throws FileNotFoundException, IOException { new Thread() { BuildData a = new BuildData(); for(int i = 0; i<100; i++) { a.parseDataFile("_"+i+"/outgoingMessages

我的代码如下

public void incomingMessageThread() throws FileNotFoundException, IOException
{
    new Thread()
    {

        BuildData a = new BuildData();
        for(int i = 0; i<100; i++)
        {
            a.parseDataFile("_"+i+"/outgoingMessages");
        }

    }.start();

}
public void incomingMessageThread()抛出FileNotFoundException、IOException
{
新线程()
{
BuildData a=新的BuildData();

for(inti=0;iThread是一个类而不是一个函数(这是您上面的语法类似的密室)

你的代码应该是

class MyThread : public Thread {
 public void run() {
    // code
 }
}

Thread t = new MyThread();
t.run()

Thread是一个类而不是一个函数(这是您上面的语法所类似的)

你的代码应该是

class MyThread : public Thread {
 public void run() {
    // code
 }
}

Thread t = new MyThread();
t.run()

您正在类内部和方法外部使用语句

从for
Thread.run
:“线程的子类应重写此方法。”

public void incomingMessageThread()抛出FileNotFoundException、IOException
{
新线程()
{
公开募捐
{
BuildData a=新的BuildData();

对于(inti=0;i,您在类内部和方法外部使用语句

从for
Thread.run
:“线程的子类应重写此方法。”

public void incomingMessageThread()抛出FileNotFoundException、IOException
{
新线程()
{
公开募捐
{
BuildData a=新的BuildData();

对于(int i=0;i您应该编写类似的内容(实现void run())

public void incomingMessageThread()抛出FileNotFoundException、IOException
{
线程t=新线程()
{
公开募捐
{
BuildData a=新的BuildData();

对于(int i=0;i您应该编写类似的内容(实现void run())

public void incomingMessageThread()抛出FileNotFoundException、IOException
{
线程t=新线程()
{
公开募捐
{
BuildData a=新的BuildData();

对于(int i=0;i应该是t.start()而不是t.run(),他试图使用匿名内部类。应该是t.start()而不是t.run())他试图使用匿名内部类。通常,最好将
Runnable
传递到
Thread
构造函数中,而不是尝试对复杂的类进行子类化。遵循格式约定也是一个好主意。顺便说一句:您可能需要找到一种不同的方法来处理异常。您可能需要直到方法返回后,才发现文件丢失。谢谢,这只是一些处理数据块的一次性代码。:)当然,我想我应该始终遵循最佳实践,即使它被扔掉了!!!!!!!!!!!!!!!一般来说,最好将
可运行的
传递到
线程
构造函数中,而不是尝试对复杂的类进行子类化。遵循格式约定也是一个好主意。顺便说一句:您可能需要找到一个不同的处理异常的方法。在方法返回之前,您可能不会发现文件丢失。谢谢,这只是一些处理数据块的一次性代码。:)当然,我想我应该始终遵循最佳实践,即使它是一次性的!!!!!!!!!!!!
public void incomingMessageThread() throws FileNotFoundException, IOException
{
Thread t= new Thread()
    {
    public void run()
        {
        BuildData a = new BuildData();
        for(int i = 0; i<100; i++)
          {
            a.parseDataFile("_"+i+"/outgoingMessages");
           }
        }
    };
t.start();
}