なぜOUTPUTがNOOOOを表示していますか?ArrayUtils.containsは文字列がすでに存在する場合にfalseを返しています
UserRole.java
public enum UserRole {
ROLE_X("ROLE_X"), //
ROLE_Y("ROLE_Y"), //
ROLE_Z("ROLE_Z"), //
OTHER_X("OTHER_X"),
OTHER_Y("OTHER_Y"),
OTHER_Z("OTHER_Z");
private final String name;
private UserRole(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public boolean hasName(String name) {
return this.name.equals(name);
}
public static UserRole[] ROLES = { ROLE_X, ROLE_Y, ROLE_Z };
public static UserRole[] OTHER = { OTHER_X, OTHER_Y, OTHER_Z };
}
TestCode.java
import java.text.ParseException;
import org.apache.commons.lang.ArrayUtils;
public class TestCode{
public static void main(String[] args) throws ParseException {
String name = "ROLE_X";
if(ArrayUtils.contains(UserRole.ROLES, name)) {
System.out.println("---ROLES---");
} else {
System.out.println("NOOOO");
}
}
}
OUTPUT: NOOOO
名前は 'STRING'、ではない配列としてすべてのインスタンスを返す
.values()
方法を持っているとして列挙インスタンス名を返す.name()
方法を持っています' UserRole' –あなたは 'ArrayUtils.contains'を正しく使用していません。 –
次に、私の文字列が列挙型のUserRole.ROLESであるかどうかをチェックする方法は? –