Java

考えてみてくださいとかいいつつ

コレ result = HogeX.invoke(x, "methodName", param1, param2); 自分でてきとうに書いてみました。 Class.getDeclaredMethod() が微妙に使えない子だった(シグネチャが引数に完全一致するメソッドしか取ってこれない)。一応実行時に型チェックしつつ、prote…

アクセス制御の抜け穴 (C++/Java ; protected編)

Python/Ruby編 OCaml編 さて C++ と Java です。 privateへのアクセスはひとまず後回しにするとして、まずは protected なところから考えていきましょう。 C++ の場合 (protected) 欲しいメソッドがサブクラスからアクセス可能なので、自分でサブクラスを定…

巨大素数の生成

暗号の話とかをやっていると巨大な素数がわりとよくでてきますが、いざ実装しようとしたときに、巨大な素数ってどうやって作るのが良いんでしょうか。 もちろんエラトステネスの篩で扱える範囲は軽く超えます。となれば確率的な素数判定を利用するんでしょう…

GCJ

coLinux に GCJ を入れてみた。 Javaなのにネイティブコードを吐いてくれるらしい。 試しにHelloWorldを動かしてみる。 public class Test { public static void main(String[] args) { System.out.println("Hello, world!!"); } } こんぱいるー、が通らない…

Java プログラマのための C++ メモ

言うほど大げさなものでは無いのですが、最近 C++ を触ってて思ったことをまとめていみました。数あるオブジェクト指向言語の中でもC++独特の仕様というのは結構あって、その中でも特に面倒だと思ったものを挙げます。単なる構文的な話題については触れませ…

Adapter パターンの実装についての話。

久しぶりに結城浩氏のデザパタ本読み返したんだけど、委譲を使ったAdapterの例で、インターフェースとして使っているクラスを敢えてインターフェースではなく抽象クラスとして定義してるのには何か意味があるんだろうか。abstractじゃないメソッドとかが入っ…