我如何显示没有所有信息的枚举
How can i display an enum without all informations
你好,我有一个如下所示的行星 class,我想显示像 MERCURY EARTH 等这样的枚举...没有括号之间的信息,我在括号内使用 CommonName MERCURE , TERRE 搜索并显示 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 与输入(部门)进行比较,但问题是每次我得到括号内的信息
有人可以帮帮我吗?
当直接打印枚举值时,如您所见,它会同时打印信息。如果您只想要枚举的名称,例如“MARS”,尝试使用name
方法,其中returns一串名字。
示例:System.out.println(Dept.get().name());
试试这个:
Planet Dept =
Arrays.stream(Planet.values())
.filter(e -> e.getCommonName().equals(Dep))
.findFirst().get();
System.out.println(Dept);
您可以这样搜索值:
public static void main(String[] args) {
Optional <Planet> Dept = Arrays.stream(Planet.values())
.filter(e -> e.name()==Planet.MERCURY.name())
.findFirst();
System.out.println(Dept.get());
}
或者像这样:
public static void main(String[] args) {
String valueYouSearch="MERCURY";
Optional <Planet> Dept = Arrays.stream(Planet.values())
.filter(e -> e==Planet.valueOf(valueYouSearch))
.findFirst();
System.out.println(Dept.get());
}
你好,我有一个如下所示的行星 class,我想显示像 MERCURY EARTH 等这样的枚举...没有括号之间的信息,我在括号内使用 CommonName MERCURE , TERRE 搜索并显示 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 与输入(部门)进行比较,但问题是每次我得到括号内的信息
有人可以帮帮我吗?
当直接打印枚举值时,如您所见,它会同时打印信息。如果您只想要枚举的名称,例如“MARS”,尝试使用name
方法,其中returns一串名字。
示例:System.out.println(Dept.get().name());
试试这个:
Planet Dept =
Arrays.stream(Planet.values())
.filter(e -> e.getCommonName().equals(Dep))
.findFirst().get();
System.out.println(Dept);
您可以这样搜索值:
public static void main(String[] args) {
Optional <Planet> Dept = Arrays.stream(Planet.values())
.filter(e -> e.name()==Planet.MERCURY.name())
.findFirst();
System.out.println(Dept.get());
}
或者像这样:
public static void main(String[] args) {
String valueYouSearch="MERCURY";
Optional <Planet> Dept = Arrays.stream(Planet.values())
.filter(e -> e==Planet.valueOf(valueYouSearch))
.findFirst();
System.out.println(Dept.get());
}