ハードコーディング恐怖症を患いました
ハードコーディング怖い
↓ハードコーディングしてるコード
import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner s = new Scanner(System.in); //ログインステータスは1が成功でぇ~、0が入力ミスでぇ~、-1がシステムエラーだよ! int loginStatus = login(s.nextLine()); switch(loginStatus){ case 1: System.out.println("ログイン成功"); break; case 0: System.out.println("ユーザー名を正しく入力してください(8文字以上)"); break; case -1: System.out.println("致命的なエラー(適当)"); break; } } public static int login(String password){ if(password.length() >= 8){ return 1; }else if(password!= null){ return 0; } return -1; } }
enum使ってくれた女神のようなコード
import java.util.*; public class Main { public enum loginStatus{ Success, InvalidError, SystemError, } public static void main(String[] args) throws Exception { Scanner s = new Scanner(System.in); loginStatus ret = login(s.nextLine()); switch(ret){ case Success: System.out.println("ログイン成功"); break; case InvalidError: System.out.println("ユーザー名を正しく入力してください(8文字以上)"); break; case SystemError: System.out.println("致命的なエラー(適当)"); break; } } public static loginStatus login(String password){ if(password.length() >= 8){ return loginStatus.Success; }else if(password!= null){ return loginStatus.InvalidError; } return loginStatus.SystemError; } }
サンプルだからログイン状態を3種類にとどめたけど、
これが10種類もあったら何の値かわからんこっちゃになっちゃうよ・・・。
頼む。みんな気を付けてくれ。
俺の目の前でハードコーディングを絶対にしないでくれ
追記:loginの文字数もハードコーディングだから、サーバー側のコンフィグかどこかにpasswordの最低文字数が決められると良いね。