gpt4 book ai didi

java - 如何从静态上下文中引用枚举变量?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:50:14 26 4
gpt4 key购买 nike

    if(array[3][3].getCall() == false && array[3][3].getUser() == Car.user.NONE )
{
array[3][3] = new Car('s', Car.user.USER, false);
aCounter++;

System.out.println("everything is fine");

}

这段代码给我:错误:无法从静态上下文中引用非静态变量用户。

public class Car
{

public enum User { USER, COMP, NA };

private char object;
public User user;
private boolean call;

public Car(char object, User user, boolean call)
{
this.object = object;
this.user = user;
this.call = call;
}
}

枚举是公开的,否则我会收到“用户有私有(private)访问错误”。我知道枚举是在构造函数中声明的非静态变量,所以我认为这是错误的来源,但我不知道如何修复它。

最佳答案

问题与枚举变量无关,与静态字段和类以及非静态字段和类有关。注意当你写

Car.user.NONE

Car.user 指的是 Car 类中名为 user字段——但是 Car .user 是实例变量,不是静态变量。因此,错误:

non-static variable user cannot be referenced from a static context

要解决此问题,只需将 Car.user 更改为 Car.User 以便表达式引用 enum User 而不是 用户用户字段。

if(array[3][3].getCall() == false && array[3][3].getUser() == Car.User.NONE )
{
array[3][3] = new Car('s', Car.User.USER, false);
aCounter++;

System.out.println("everything is fine");
}

关于java - 如何从静态上下文中引用枚举变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14417532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com