Illegical static declaration in inner class

前端 未结 2 614
执念已碎
执念已碎 2021-01-15 18:40
import java.lang.*;

class mythread implements Runnable {

    Thread t1;
    String name = \"\";

    mythread(String thname){

        name = thname;
        t1 =          


        
相关标签:
2条回答
  • 2021-01-15 19:21

    As per the error message, inner class cannot access the static variables;

    either remove the class t or declare it static; it works:

    // class t {   // Remove it
    
            public static void main(String args[]) {
    
                mythread m1 = new mythread("Child Thread 1");
                mythread m2 = new mythread("Child Thread 2");
    
                try {
    
                for(int i = 5 ; i > 0 ;i--) {
                    System.out.println("Main Thread" + i);
                    Thread.sleep(2000);
                }
    
            }
            catch(InterruptedException e){
    
                System.out.println("Main Thread Interrupted");
            }
    
    
        // }
    
    0 讨论(0)
  • 2021-01-15 19:23

    there are some missing brackets

    import java.lang.*;
    
    class mythread implements Runnable {
    
        Thread t1;
        String name = "";
    
        mythread(String thname){
    
            name = thname;
            t1 = new Thread(this, name);
            System.out.println("Child thread starting" + t1 );
        }
    
        @Override
        public void run() { 
            for(int i = 5 ; i > 0 ;i--){
                System.out.println("Name Of Thread" + t1 + i);
            }   
        }
    } // was missing (for closing class mythread)
    
    
    class t {
    
        public static void main(String args[]) {
    
            mythread m1 = new mythread("Child Thread 1");
            mythread m2 = new mythread("Child Thread 2");
    
            try {
    
                for(int i = 5 ; i > 0 ;i--) {
                    System.out.println("Main Thread" + i);
                    Thread.sleep(2000);
                }
    
            }
            catch(InterruptedException e){
    
                System.out.println("Main Thread Interrupted");
            }
    
         }
    }
    
    0 讨论(0)
提交回复
热议问题