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