Java 如何从enum呼叫?

Java 如何从enum呼叫?,java,Java,我有一个enum的java代码 public enum TruckType{ LIGHT, MEDIUM, HEAVY, SUPER_HEAVY, TRAILER; } 现在我正在尝试从enum获取介质 public static void main (String[] args) { Truck truck1 = new Truck("John Brown","9764780493","GJ67745676","Blue", 2400000.0,2019,18,TruckTy

我有一个enum的java代码

public enum TruckType{
    LIGHT, MEDIUM, HEAVY, SUPER_HEAVY, TRAILER;
}
现在我正在尝试从enum获取介质

public static void main (String[] args) {
    Truck truck1 = new Truck("John Brown","9764780493","GJ67745676","Blue", 2400000.0,2019,18,TruckType.MEDIUM);
}
这是我做的,但它不起作用。要从enum获取介质,我应该做什么? 我得到一个空值返回

这是我的卡车类和卡车类型

public class Truck extends Vehicle{
    private int wheelNo;
    public TruckType classification;

    public Truck(String ownername, String telephonenumber, String chassisNum, String color, double estimatedVal, int year,
                 int wheelNo,TruckType Classification)
    {
        super(ownername, telephonenumber,chassisNum, color, estimatedVal, year);
        this.wheelNo = wheelNo;
        this.classification = classification;

这里的构造函数参数有问题:
TruckType分类

public Truck(String ownername, String telephonenumber, String chassisNum, String color, double estimatedVal, int year,
             int wheelNo, TruckType Classification) {
    super(ownername, telephonenumber,chassisNum, color, estimatedVal, year);
    this.wheelNo = wheelNo;
    this.classification = classification;
public class Truck extends Vehicle{
private int wheelNo;
public TruckType classification;

public Truck(String ownername, String telephonenumber, String chassisNum, String color, double estimatedVal, int year,
             int wheelNo,TruckType Classification)
{
    super(ownername, telephonenumber,chassisNum, color, estimatedVal, year);
    this.wheelNo = wheelNo;
    this.classification = classification;
    ---
    ---
}
由于参数的大小写,Java可以看到:

    this.classification = classification;
事实上:

    // remains null
    this.classification = this.classification;
解决方案是检查拼写/大小写,并将
TruckType分类
更改为
TruckType分类

public Truck(String ownername, String telephonenumber, String chassisNum, String color, double estimatedVal, int year,
             int wheelNo, TruckType Classification) {
    super(ownername, telephonenumber,chassisNum, color, estimatedVal, year);
    this.wheelNo = wheelNo;
    this.classification = classification;
public class Truck extends Vehicle{
private int wheelNo;
public TruckType classification;

public Truck(String ownername, String telephonenumber, String chassisNum, String color, double estimatedVal, int year,
             int wheelNo,TruckType Classification)
{
    super(ownername, telephonenumber,chassisNum, color, estimatedVal, year);
    this.wheelNo = wheelNo;
    this.classification = classification;
    ---
    ---
}
在这里,
this.classification=classification是错误的,
应该是
this.classification=分类


请检查。

请理解,
“…但它不起作用”
告诉我们没有任何用处。它怎么不起作用?什么不起作用?您是否看到编译器错误消息?您是否没有获得正确的程序行为?请改进并澄清这个问题。据我们所知,你们的卡车建造师并没有这种结构,但你们并没有展示它,所以,谁知道呢?请浏览、和,以了解如何最好地使用此网站。请注意,此用法,
TruckType.MEDIUM
是正确的,但是,这对您没有多大帮助,因为我们不知道问题是什么。您定义构造函数的方式与尝试初始化
Truck
的方式可能不匹配。我假设问题是“构造函数无法应用于给定类型”错误,如果是,副本应该有助于您创建一个卡车构造函数,该构造函数接受您当前传递给它的参数。为了获得更好的帮助,请发布您的卡车类代码和错误消息,然后我们可以确定这就是问题所在。我添加了我的构造函数。这不是一个好建议,事实上有点落后,因为您建议原始海报(op)的当前代码继续违反Java命名规则,也就是说,类名以大写字母开头,变量、方法和参数名以小写字母开头。最好使用其他社区Wiki解决方案,更改参数的大小写。是否阅读所使用的行和变量?作业是错误的,这就是我试图向他指出的。最好开始认真阅读查询和解决方案!是的,我仔细阅读了行和使用的变量。这两个答案都有效,但其中只有一个遵循正确的Java实践。为什么要在完全没有必要的情况下误导新手提问者?