【问题标题】:How to get values for specific items in enum array in Java?如何在Java中获取枚举数组中特定项目的值?
【发布时间】:2019-04-19 04:08:54
【问题描述】:

this post 继续,我一直在研究和处理枚举,现在我设法创建了一个枚举,它包含我想要的值并以我想要的方式输出它们,现在我'只是想知道我如何才能获得相同的输出,但对于单个项目而不是每个项目。再说一次,我对 Java 很陌生,所以如果能简单解释一下如何以及为什么会不胜感激。

public class PeriodicTable {

    public enum Element {
        Lithium("Li", "Alkali Metals", 6.941),
        Iron("Fe", "Transition Metals", 55.933);
        private String symbol;
        private String group;
        private Double weight;

        private Element(String symbol, String group, Double weight) {
            this.symbol = symbol;
            this.group = group;
            this.weight = weight;
        }
    }

    public static void main(String[] args) {
        for(Element cName : Element.values()) {
            System.out.println("Element: " + cName + " (" + cName.symbol + ")" + "\nGroup: " + cName.group + "\nAtomic Weight: " + cName.weight);
        }
    }
}

【问题讨论】:

    标签: java arrays class methods enums


    【解决方案1】:

    您可以使用传入用户输入的valueOf 方法来检索枚举:

    Element ele = Elements.valueOf(input);
    

    然后你可以使用你的打印语句来打印信息:

    Element cName = Element.valueOf("Iron");
    System.out.println("Element: " + cName + " (" + cName.symbol + ")" + "\nGroup: " + cName.group + "\nAtomic Weight: " + cName.weight);
    

    输出:

    Element: Iron (Fe)
    Group: Transition Metals
    Atomic Weight: 55.933
    

    【讨论】:

    • 为什么不只是Element cName = Element.Iron;
    • @Andreas OP试图允许用户输入,输入将是String,所以valueOf方法是必要的。我只是以“Iron”为例来说明它是如何工作的
    • 问题中没有任何关于“用户输入”的内容。它只是说“针对单个项目”Element.Iron 是获得“单件”的一种方式。它比valueOf 更简单,而且它是类型安全的,即你不能拼错枚举值名称(或者更确切地说,如果你拼错了,编译器会立即告诉你)。
    • @Andreas 它说是从他们之前的问题继续,这表明他们正在尝试获取用户输入并获取相应的元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多