2010-03-01から1ヶ月間の記事一覧

ImmutableMapの動作

Google collection LibraryのImmutableMapをどう使いこなすか? Mapを戻り値とするメソッド内で生成することだろう。とにかく動作を見てみようと思う。 Map<String,Integer> map = new ImmutableMap.Builder<String,Integer>() .put("a",10) .put("b",20) .build(); for(String key : map.key</string,integer></string,integer>…

MySQLでのテーブル情報参照

テーブルの情報を取り出すのに、Oracle では、 USER_TAB_COLUMNS や、USER_TABLES などを使うが、 MySQL では、、、 show tables で、table_name カラム情報を見たければ、、 SELECT * FROM information_schema.columns WHERE table_name = 'テーブル名' テ…

挿入時制限付きコレクション(2)

挿入時制限付きコレクション(1)の続き、挿入時、applyメソッドの戻り値 boolean に沿って コレクションの生成の実装は以下のとおり。 import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.HashMap;…

挿入時制限付きコレクション(1)

挿入時制限付きコレクション生成の提供を整理することにした。 public interface ListPredicate<E>{ public boolean apply(E e); } → ArrayList 生成に使用する Predicate public interface MapPredicate<K,V>{ public boolean apply(K k,V v); } → HashMap 生成に使</k,v></e>…

iBATIS動的SQLの$文字

iBATIS のSQL記述でテーブル名やORDER BY句などを動的にする場合、 $ 文字で変数を書く! つまりシングルクォート括りを回避する。 SQLMap XML に書く SQL は、例えば、、、 iBATIS 2 系では、 SELECT * FROM $tblname$ WHERE price = #price# ORDER BY sale…

メインクラスの為に

非Windows で動作するJava main() クラスの為に、補助するものを用意してみた。 困ったことに、Eclipse での javaw 実行では、SIGTERM シグナル送信して受け取らせることができない。 つまり Runtime.getRuntime().addShutdownHook で登録したスレッドの動作…

Collections2.filterの注意

Google Collection Library のCollection2 filter で注意すべきは、filter 機能が動作しているタイミングである。 filter の戻り値である Collection のメソッド実行時に働くことに気をつけなければならない。 これは、次のようなサンプルコードを様々に動か…

Predicate 見直し

以前、Google collection Library に感動したことを下記の投稿のとおり書いたが、 http://blog.zaq.ne.jp/oboe2uran/article/258/ ここで書いた、Collections2 の filter や、transform の実行は、対象 Collection に値を 追加する前に記述しても良い!!(…

スクリプトでクラスパス設定

JVM起動等、スクリプト中でCLASSPATH設定をfor文で書く場合、環境によってまとめると。 --------------- Windows ----------------- set PROJECT_HOME=C:\AAA set CLASSPATH=%PROJECT_HOME%\resource for %%i in (%PROJECT_HOME%\lib\*.jar) do call :setpat…

シングルトン作成を変わったかたちで、

シングルトン作成を対象のクラスでgetInstance()メソッドを用意しないで、作成専用のクラスを 用意するとしたら。。。Google guice を使うと面白いかも。。 なんだか、お遊びコードである。 import java.util.HashMap; import java.util.Map; import com.goo…

TypeLiteral の使用

com.google.inject.TypeLiteralの利用で最も多く使用されるのは、 型タイプ限定のインジェクトであろう。 List<String> みたいなものは。。。 Injector injector = Guice.createInjector(new AbstractModule(){ @Override protected void configure(){ binder().bind</string>…

SNMPトラップ受信を実践に向けて(2)

いよいよ org.snmp4j.CommandResponder を使ってトラップ受信を書く。 先日のつづきである。 import java.util.Iterator; import java.util.Vector; import org.snmp4j.CommandResponder; import org.snmp4j.CommandResponderEvent; import org.snmp4j.PDUv1…