Groovy
ネタ

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

More than 3 years have passed since last update.

こちらの求人(画像が差し代わってたので魚拓)のコードが一部で話題になっていますが、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("笑顔");
}
結果
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔
笑顔

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