在 java 中调用包含枚举的函数

calling a function containg enum in java

我定义了一个class

class Prop{
    public static enum property{
    NAME,
    CITY,
    ADDRESS;
    }
    private String NAME;
    private String CITY;
    private String ADDRESS;
    public String getValue(property pro){
    switch(pro){
    case NAME:
    return NAME;
    case CITY:
    return CITY;}
    return null;}
    }


class CallPro{
   private String name;
   name=Prop.getValue("");
 }

我不是很清楚如何从 class CallPro 调用 getValue。

基本上应该传递什么参数来得到想要的值。

我是 java

的初学者

要运行这个程序你首先需要一个public static void main(String[])方法。这是您进入任何 Java 程序的入口点。因为,您想在 callPro 中分配值,请在其中添加 main() 方法。

接下来,你要调用getProperty(),这是一个属于classprop的实例方法,所以你需要先使用[=]创建它的一个实例37=]新构造函数()语法。

class callPro {

    private static String name;
    private static String city;
    private static String address;

    public static void main(String[] args) {
        // create prop instance
        prop property = new prop();

        // call prop's method getValue()
        name = property.getValue(prop.property.CITY);
        city = property.getValue(prop.property.NAME);
        address = property.getValue(prop.property.ADDRESS);
        // New York, John, Central Park
        System.out.println(name + ", " + city + ", " + address);
    }
}

注意,我必须如何让 callPro 的成员 static 能够在 main() 方法中访问它们,因为那也是 static。另外,请注意我是如何引用 Enums 的:className.enumType.enumValue.

为了能够看到从 main() 方法打印的值,您还需要为 prop class 成员提供值,如

private String NAME = "John";
private String CITY = "New York";
private String ADDRESS = "Central Park";

public String getValue(property pro) {
    switch (pro) {
    case NAME:
        return NAME;
    case CITY:
        return CITY;
    case ADDRESS:
        return ADDRESS;
    }
    return null;
}

是的,您可以遍历 enum 的值并在循环中检索您的属性,如

prop property = new prop();
for (prop.property prop : prop.property.values()) {
    System.out.println(property.getValue(prop));
}

enumType.values() returns 所有 enumValues[ 的 enumType[] =45=] 可以与 for-each 循环一起使用,如上所示。