クラス名やメソッド名に日本語を使えるの知らなかった

素でミスして全角の混じったメソッドをcommitしてた酔狂なメンバーがいて、それがコンパイルエラーにならない事から初めて知りました。

きっと私が今まで知らなかっただけで、有名な話なのだとは思うのですが、面白いですね。

package cx.ath.seratch;

public interface はてなダイアリー {

	public String URLを取得();
	public String 名前を取得();
	
}
package cx.ath.seratch;

public class 半径5メートル implements はてなダイアリー {
	
	private final String URL = "http://d.hatena.ne.jp/srkzhr";
	private final String 名前 = this.getClass().getSimpleName();
	
	public String URLを取得() { return this.URL; }
	public String 名前を取得() { return this.名前; }
	
}
package cx.ath.seratch;

public class メイン {

	public static void main(String[] args) {
		
		はてなダイアリー このブログ = new 半径5メートル();
		出力する(このブログ.URLを取得());
		出力する(このブログ.名前を取得());

	}

	public static void 出力する(String 内容) {
		System.out.println(内容);
	}
}

こんな感じでコンソールに出力されます。

http://d.hatena.ne.jp/srkzhr
半径5メートル

面白いけど、変な感じです。英語圏の人にとっては、メソッド名つけるのとかこんな感覚なのかと思うと。