首页 > 解决方案 > 如何在没有所有信息的情况下显示枚举

问题描述

您好,我有一个像下面这样的 Planet 类,我想显示像 MERCURY EARTH 等这样的 Enum ......没有括号之间的信息,我在像 MERCURE , TERRE 这样的括号内使用 CommonName 来搜索和显示 Enum

public  enum Planet {

    MERCURY(0.387,"MERCURE") , VENUS(0.722,"VÉNUS"), EARTH(1.0,"TERRE"), MARS(1.52,"MARS"), JUPITER(5.20,"JUPITER"),
    SATURN(9.58,"SATURNE"),  URANUS(19.2,"URANUS"),  NEPTUNE(30.1,"NEPTUNE");
    private double  distance;
    private String commonName;
    




    
    private Planet(double v, String c) {
        distance = v;
        commonName = c;
    }

    public  double getDistanceFromTheSunInAstronomicalUnit(double distance) {
        return distance;
    }


    public  String getCommonName() {
        return commonName;
    }

    @Override //
    public  String toString() {
        return ""+commonName+ " ("+distance+")";
    }
}

我有这个功能

 Optional <Planet> Dept = Arrays.stream(Planet.values())
                        .filter(e -> e.getCommonName().equals(Dep))
                        .findFirst();

                System.out.println(Dept.get());

我正在尝试显示没有括号之间信息的枚举,并将 CommonName 与输入(部门)进行比较,但问题是每次我得到括号内的信息时

任何人都可以帮助我吗?

标签: javaarraysenumsoptional

解决方案


直接打印枚举值时,您会发现它会连同它一起打印信息。如果您只想要枚举的名称,例如“MARS”,请尝试使用name返回名称字符串的方法。

例子:System.out.println(Dept.get().name());


推荐阅读