SunのコンパイラとEclipse JDTで動きが違う - しげるメモでも言及してますが、SunのjavacとEclipseのJDTでは微妙に内部クラス周りの動作に差異がある模様。java.lang.Class.getCanonicalName()の動作を確認してる最中で、また微妙に動きが違うものを発見。
引き続き自分めも。Eclipseでよく見かけるエラー。 これは疑似的には次のように解釈されてる。
自分めも。Javaのワイルドカードは? extends Hogeとか? super Fooとか書けるけど、? extends Hoge super Fooとは書けない。その前提でモデリングしてたらめんどくさいパターンを思いついた。
Javaのメソッドは名前が似てるオーバーライドとオーバーロードという二つの概念があります。オーバーライドはサブクラスでメソッドを再定義するもので、オーバーロードは同じ名前で引数が異なるメソッドを複数定義する仕組みです。で、今回はJavaのメソッド…
enum basics - しげるメモで基本的なことをおさらいしたので、私がよく使ってるenum関係のパターンをいくつか。
最近よくVisitorを使うので、もうちょっと使いやすいスタイルにならないかなーと思って作ったのがこれ。
仕事柄、Javaのenumを使うことが多いのですが、あまり世の中のプログラムでenumを全力で使ってるところをあまり見かけません。ということで、自分でもどうなのと思うときがちらほらあるenumの使い方をまとめてみようと思いますが、とりあえず今回は普通の復…
あんまりコマンドじゃない。コマンド++
某所でVisitorのサンプル書くとか言う話題になったので。
本を読む 専門書を3冊/月くらいのまったりペース 形式言語と分散処理を中心に ライブラリ/フレームワークを整備する 集合 グラフ テキストエディタ 推論 メタモデリング/生成系 プロトコル系 コーディング規約系 作りかけのコンセプトの深化 対象特化問い合…
みんな変態にしかスターをくれないので。型変数使うとプッシュダウンオートマトン(のような動作)を実現できたりもする。ただし、スタックに積めるのが1種類の値だけなのでかなりイマイチではある。 System.out.println( new Xml() .tag("hello") .attribute(…
某所で変態扱いされたので解説がてら。こんな "1 plus 2 minus 5 is" みたいなことを書けるDFAをJavaで書いてみる。単純に現状態を表すのクラスの中に「次状態 入力() {...}」なメソッドを作ってるだけ。 public class Dfa { public static void main(String…
package-info.java から書くということを実践してみようかと
id:daisuke-m と話してたことをまとめる。 元ネタはThrowableについて本気出して考えてみた - 都元ダイスケ IT-PRESS。異常が起こったとき、だいたい下の方法で対処してます。 RuntimeException系をスロー Exception系をスロー AssertionErrorをスロー (また…
Software Language Engineering: Creating Domain-Specific Languages Using Metamodels作者: Anneke Kleppe出版社/メーカー: Addison-Wesley Professional発売日: 2008/12/09メディア: ペーパーバック クリック: 1回この商品を含むブログ (1件) を見る出た…
> ++age 27
3つ流派があって ぬるぽが飛ぶのが嫌だから、nullでないことが保証されるリテラルを先に書く ぬるぽが飛ばないとエラーを隠すので、ぬるぽを発生させる可能性のある s を先に書く equalsは同値比較演算で交換可能のはずなのに、順序を変えると動作が違うのは…
HudsonがEclipseでコンパイルできなかったという話題が1か月前くらいにあって、その調査をしているときにjavacとJDTで微妙に動作が違う点を見つけました。 class Hoge<T> { void h() { class Foo { T t; } Foo o = new Foo(); boolean b = (o instanceof Foo); </t>…
なんか流行ってたので。私はs.equals("literal")派です。理由は 読みやすい 静的解析しやすい "literal".equals(s) はsにnullが認められていない時にも正常に動いているかのように見える とはいっても、プロジェクト全体でぶれてなければ問題ないとは思いま…
ので、== false と書くパターンがあります。 if (hoge.isFoo() == false) { ... } 最近は上記を使っているのですが、3つくらい書けば目立つんじゃねと思った if (!!!hoge.isFoo()) { ... } たぶん偶数回しか書かないというバグを生みそうなのでやめた。
手に馴染むフリーの数学ライブラリがJavaになかったので作成中。 sparse open-vector sparse open-matrix vector functions matrix functions graph functions 数学から離れすぎ+チューニングの世界から離れすぎでけっこう苦戦してます。
Yukara プロジェクトサイトをオープンし、SeasarConで id:masataka_k がしゃべった Yukara Wisdom をリリースしました。 http://yukara.ashikunep.org/ http://yukara.ashikunep.org/wisdom マーケット的な何かとかは -Yukara-Wisdomリリース - まさたか日記…
java.io.Closeable の事も忘れないであげて。 - 設計と実装の狭間で。 に対して、Syntax Sugarっぽいものを目指してみた。 public abstract class Using<S extends Closeable, T extends Throwable> { abstract S value() throws T; abstract void process(S value) throws T; void play() { new Or() {</s>…
Eclipse Plug-inのソースバンドルフィーチャーを作るのが異常なほど面倒だったので、なんかないかなーと調べたところ発見。PDEBuild/Individual Source Bundles - Eclipsepedia にやり方が書いてありますが、なんか不明瞭+いくつか情報が落ちてたので改めて…
面白そうな議論なので。 つまり、値の検証をしてそのまま値を返すのがValidator、値の検証をして変換という付加機能をつけて値を返すのがConverterだ。つまりConverterはValidatorの特殊形態と捉える感じ。 2008-09-20 私は逆で、ValidatorがConverterの特殊…
行ってきます。今回は、The Ashikunep KotanのYukaraブランドより、WisdomとCalendarというプロダクトを出展する予定です。 ここ3ヶ月くらいは真昼間にWisdomを延々と開発していまして、ようやくデモができるレベルまで達しました。Yukara Wisdomは、Irenka…
日曜の夜9時に実家に電話してくるとか…
またいただきました。今日は読書だけじゃなくて買い物にも行く予定。でも雷が鳴ってる…
ソフトウェアハウスとSIerが混同されて議論されてることが多い気がする…SIはソフトウェアじゃなくてシステムの生産性を考えなきゃならんのにね。
夏休み#1をいただきました。これ読んで、昼寝して完了。Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)作者: Harold Abelson,Gerald Jay Sussman,Julie Sussman出版社/メーカー: The MIT Press発売…