无法从静态context-Main方法引用非静态字段

时间:2016-04-25 13:25:13

标签: java class methods static main

我的Spring-Boot应用程序中有2个类:

-Tasks

-Runner

run类包含我的main方法,我尝试从Tasks类调用方法:

转轮:

@Component
public class Runner {

    Tasks tasks;    

    @Autowired
    public void setTasks(Tasks tasks){
        this.tasks=tasks;
    }

    public static void main(String[] args){

    //error being caused by below line
    tasks.createTaskList();

    }

任务类:

@Service
public class Tasks {

    public void createTaskList() {

    //my code
    }


    //other methods 


}

在我的Runner中,当我尝试在Tasks类中调用createTaskList()方法时,我收到以下错误:

Non static field 'tasks' cannot be referenced from a static context

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

主要方法是static,意味着它属于类而不是某个对象。因此,静态上下文不能引用实例变量,因为如果有一个实例变量,它就不会知道它将使用哪个Runner实例。

简而言之,解决方案是在Tasks课程中制作static对象Runner