Java

Javaでsynchronizedを再帰的に呼び出した時の挙動

一般的にはやらないだろうけど、気になって調べてみた。 ソース OpenJDK、Hotspot VMをベースに調べてみた。 JDK https://github.com/openjdk-mirror/jdk7u-jdk commit: f4d80957e89a19a29bb9f9807d2a28351ed7f7df Hostspot VM https://github.com/openjdk-m…

Class.cast()について調べてみた

ジェネリクスと同じくJDK1.5で導入された、Class.cast()について調べてみた。 Class.cast()とは うまい事型を変換してくれる便利機能かと思ったら、全然違った。 Objectで表されているけど実は中身はInteger、とかそういう時に使う。 キャスト演算子。 impor…

ジェネリクスを使ってClassを渡してClassのインスタンスを返す

クラス全体でKとかVとか指定するのは前にやったけど、メソッド1つだけで有効なKとかVとかを指定する方法を知った。 スタティックメソッドとかの時に便利そう。 Class.forName()でClassを取ってくる方法だと、キャストしなきゃいけなそう。 Class.cast()とい…

HttpServletRequestのラッパークラス作った

ClassCastExceptionに嫌気が差した。 ぬるぽにも嫌気が差した。 使う側でキャストせず、リターン型の決まったメソッドを使って取得。 Pythonみたいに、nullだった場合のデフォルト値も指定出来る。 型は今回必要なものだけ作った。 Pythonは最初から便利なメ…

Javaのジェネリクスとやらを試してみた

今まで古いバージョンのJavaしか使った事がなかったのか、ジェネリクスというものの存在すら知らなかった。 よく解らないから、とりあえずPythonのListっぽいものを作ってみた。(中身はArrayListだけど) JavaのCollectionインターフェイスの文化が崩壊したけ…