LoginSignup
31
31

More than 5 years have passed since last update.

「未経験者OK!」のコードは通るんです。そう、Groovyならね。

Last updated at Posted at 2015-05-22

こちらの求人(画像が差し代わってたので魚拓)のコードが一部で話題になっていますが、Groovyなら(1行足すだけで)コンパイルエラーを出さずに正常終了させる事ができます。

  • Groovyは末尾のセミコロンは不要なので「String company = "~~"」の宣言もOK
  • metaClassを使ってInteger#parseIntを常に0を返すように書き換える
Integer.metaClass.static.parseInt = { String val -> 0 }

String company = "未経験者、中途者の熱意"
int i = Integer.parseInt(company);
while(true) {
    if( i == 0 ) {
        break;
    }
    System.out.println("笑顔");
}

とはいえこのコードの意味するところが全く分からない事に変わりはありませんが…w

(追記)

上記のコードだと「笑顔」が出力されないので、さらに1行足して"笑顔"が出力されるようにしました。

  • Integer#parseIntは文字の長さを返すように書き換える
  • System.out.printlnを書き換えて、iをデクリメントするように書き換える
    • (本当は"=="をフックしたかったのですが、metaClassではうまく行きませんでした…悔しいっ)
Integer.metaClass.static.parseInt = { String val -> val.length() }

String company = "未経験者、中途者の熱意"
int i = Integer.parseInt(company);

System.out.metaClass.static.println = { String x -> i--; println x }

while(true) {
    if( i == 0 ) {
        break;
    }
    System.out.println("笑顔");
}
結果
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔

笑顔あふれる職場になりました!

31
31
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
31