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