java - 不能从静态上下文中引用非静态字段 - Main 方法

标签 java class methods static program-entry-point

<分区>

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

-任务

-运行者

runner 类包含我的 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

我该如何解决这个问题?

最佳答案

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

简而言之,解决方案是在 Runner 类中使您的 Tasks 对象成为 static

关于java - 不能从静态上下文中引用非静态字段 - Main 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36841921/

相关文章:

java - 由 Maven 运行时集成测试随机失败或抛出错误

java - 如何从提交给执行者的已取消+中断的可调用项中获取异常?

c# - 使用三元语句将扩展方法分配给委托(delegate)

ruby - “respond_to ?' versus '定义了吗?”

java - 如何使用 math.random 重新随机化网格上的绘图

java - JSON 解析后小部件未更新

java - 如何访问 chromium(或任何其他浏览器)cookie

java - 实现比较方法的 Comparable 接口(interface)的 Widget 类

java - 即使为变量赋值后,变量仍为 null (Java)

java - 在父类上使用instanceof来抽象类和非抽象子类