无法解析Java中的方法'start()'实现Runnable

时间:2018-10-22 15:12:42

标签: java

我想交替运行两个线程以写下字母。不知道我在代码中写错了什么,但是IDE无法解析.start()-Method。搜索了很多,但是找不到我的问题的答案。我为每一个主意而感激。

public class ABCThread_2 implements Runnable
{
    private boolean issmall;
    private boolean istall;

    public ABCThread_2(boolean istall, boolean issmall)
    {
        this.istall = istall;
        this.issmall = issmall;
    }

    public void run()
    {
        if(issmall)
        {
            for (char c = 'a'; c <= 'z'; c++)
            {
                try
                {
                    Thread.sleep(250);
                }

                catch (InterruptedException e)
                {

                }

                System.out.print(c);
            }
        }

        else if(istall)
        {
            for (char c = 'A'; c <= 'Z'; c++)
            {
                try
                {
                    Thread.sleep(250);
                }

                catch(InterruptedException e)
                {

                }

                System.out.print(c);
            }
        }
    }

    public static void main(String [] args)
    {
        ABCThread_2 th1 = new ABCThread_2(false, true);
        ABCThread_2 th2 = new ABCThread_2(true, false);
        th1.start();
        th2.start();


    }


}

2 个答案:

答案 0 :(得分:1)

Runnable没有start方法(ABCThread_2将继承)。您一定要打{{1​​}}。在这种情况下,请使用您的Thread.start创建Thread实例:

Runnable

答案 1 :(得分:1)

Runnable没有start方法。

您使RunnableThread感到困惑。 Thread个接受Runnable,并在新线程中调用它。

您需要显式创建一个新的Thread

// Create your Runnable
Runnable runnable = new ABCThread_2(false, true);

// Then give it to a new instance of a Thread to run
Thread th1 = new Thread(runnable);

// And now you can start the Thread
th1.start();

尽管您的命名在这里使事情变得混乱。 ABCThread_2确实应该重命名为描述性名称,并且不能暗示它本身是Thread的子类。