1つのjava]enumは複数のifゲートより優れている.
13367 ワード
最近javaを開発したとき、enumを使用すると便利で安全です.
1.例
タイプ:池、番号1-李尚海さん タイプ:火、番号4-Fire タイプ:水、番号7-ベンド タイプと番号情報を用いてポケモン名を区別する方法を作成した.
しかし、これは役に立たず、if文の重なりだけが増えた.
そして、ある場所で、違うifゲートを使う人がいると思います.
最後にあまり多くのコードを書くのが好きではありません.本当に減らしたいです.2.enumの使用
enumクラスに識別子 を作成する
流、ランダろ過標識 を通過
識別子から名前 が戻る.
3.メリット
1.例
ポケモンを例に
しかし、これは役に立たず、if文の重なりだけが増えた.
そして、ある場所で、違うifゲートを使う人がいると思います.
最後にあまり多くのコードを書くのが好きではありません.本当に減らしたいです.
public String getPokemonName (Pokemon pokemon) {
String name = "";
if(pokemon.getType().equals("grass") && pokemon.getNumber() == 1) {
name = "이상해씨";
}
else if(pokemon.getType().equals("fire") && pokemon.getNumber() == 4) {
name = "파이리";
}
lse if(pokemon.getType().equals("water") && pokemon.getNumber() == 7) {
name = "꼬부기";
}
return name;
}
class Pokemon {
private String type;
private int number;
}
2.enumの使用
似たような悩みがあると思います優雅な兄弟ブログJava Enum活用プログラムを積極的に参考にしました.
import java.util.Arrays;
enum Pokemon {
bulbasaur("이상해씨", "grass", 1),
charmander("파이리", "fire", 4),
squirtle("꼬부기", "water", 7),
missingno("미씽노", "normal", 0);
private String name;
private String type;
private int number;
Pokemon(String name, String type, int number) {
this.name = name;
this.type = type;
this.number = number;
}
// 타입, 번호를 기준으로 식별자 필터링
public static Pokemon getPokemon (String type, int number) {
return Arrays.stream(Pokemon.values())
.filter(x -> x.type.equals(type) && x.number == number)
.findAny()
.orElse(missingno);
}
// 필터링된 식별자의 이름 반환
public static String getPokemonName (String type, int number) {
return getPokemon(type, number).getName();
}
public String getName() {
return this.name;
}
}
class Main {
public static void main(String[] args) {
String name = Pokemon.getPokemonName("grass", 1);
System.out.println("name " + name);
}
}
3.メリット
個人的に感じるメリットは
1)ランダろ過はifゲートより安全である.
2)時間的複雑度が類似している.
3)enum自体はモノトーンでどこでも使える.
4)lombokを使用すると、コードが本当に少なくなります.
5)メンテナンスが容易.識別子をもう一つ追加すればいいです.
4.参考
Java Enum活用プログラム
Reference
この問題について(1つのjava]enumは複数のifゲートより優れている.), 我々は、より多くの情報をここで見つけました
https://velog.io/@skyepodium/enum-하나가-if-문-여러개-보다-낫다
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Java Enum活用プログラム
Reference
この問題について(1つのjava]enumは複数のifゲートより優れている.), 我々は、より多くの情報をここで見つけました https://velog.io/@skyepodium/enum-하나가-if-문-여러개-보다-낫다テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol