0
在项目中,我有以下方法,它遍历类型枚举,也在下面呈现。问题是当if语句满足某些值时,for循环会中断并且该方法返回false。这段代码有什么问题?对于满足内部if语句的循环休息
谢谢。
private boolean genreExists(Integer num) {
Genre[] genres = Genre.values();
for(Genre g : genres){
if(num == g.getId()){
return true;
}
}
return false;
}
public enum Genre {
ACTION(28),
ADVENNTURE(12),
ANIMATION(16),
COMEDY(35),
CRIME(80),
DOCUMENTARY(99),
DRAMA(18),
FAMILY(10751),
FANTASY(14),
HISTORY(36),
HORROR(27),
MUSIC(10402),
MYSTERY(9648),
ROMANCE(10749),
SCIENCEFICTION(878),
TVMOVIE(10770),
THRILLER(53),
WAR(10752),
WESTERN(37);
private static final Map<Integer, Genre> map = new HashMap<>();
static{
for(Genre g : values()){
map.put(g.getId(), g);
}
}
int id;
Genre(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public static Genre of(Integer id){
Genre result = map.get(id);
if(result == null){
throw new IllegalArgumentException("Invalid id value: " + id);
}
return result;
}
}
这将是因为if语句是真实的。 究竟是什么问题? – Ryan
问题是,如果语句方法确实应该中断,但它应该返回true。现在满意if语句循环中断并返回false。 – adams172
if里面的return语句确实如此。它返回true – Ryan