たぷつきません

おなかがでてきた。もうたぷついてるやん。

Java

genericsの型情報

パラメータ付きでインスタンス生成したオブジェクトに対してパラメータ型に何を渡されたかリフレクションで知ることができるかを調査しました。結果をメモしておきます。まさたかさんの初期ikushipeコードが参考になりました。ありがとうございます。さいし…

web.xmlのXMLスキーマ検証でエラー

web.xmlを編集していると、eclipseでエラーだとうるさい。amaretas html editor と web toolプラグインを入れていると、どっちかがスキーマ検証してくれるようだけど、エラーの意味が分からなかった。schemaLocationを指定しているのに、「cvc-elt.1: Cannot…

どっちが一般的かな

classは予約語なので、引数やローカル変数名に困ることになるわけですが、klassやclazz がよく使われているようですね。私はclazzを使っていますが、どっち(他にどんな候補があるのかしらん)が一般的なんでしょうね。ちなみにeclipseのコード補完では、class1…

assert検証

1.4からあったassertをそういえば使ったことがありませんでした。JVMの起動パラメータに-eaがなければ検証ロジックが実行されないので十分テストが終わったメソッドはパフォーマンスがアップするということなのですが、理屈はわかるけどどれくらい効果がある…

もう一つお題

これもワーニングにならないようにしたい。 private <T> ComponentDefNodeModifier<T> getModifier(ComponentDefNode<T> node) { return node.getInterface(ComponentDefNodeModifier.class); } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … public </t></t></t>…

Genericsの悩み

以下のような場合にワーニングにならないようにするなにか良い手はないだろうか。 private static class Node<T> extends Object { } public void addNode(Class clazz) { Node node = makeNode(clazz); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } public <T> Node<T> makeNode(</t></t></t>…

TagSupport追記

getValues public Enumeration getValues() タグハンドラが保持している値の列挙。 戻り値: 全ての値セットの列挙。 …って、うぉい!おもくそドキュメント嘘ついてるやん。キーの列挙ですって。

taglibのTagSupportぐはー

ikushipeのタグライブラリを補充しようとしていたんだけど、どうも任意の属性を取るための属性名リストが取得できないようにみえた。String getValue(String k), removeValue(String k), String[] getValues() というのはあるけど、キーリストを返すそれらし…

アノテーションの罠

アノテーションでリフレクションするコードを書いてそれをデバッグしていて気づいたのですが、コンテキストがリロード(Tomcatでデバッグだとプロジェクトのソースを改変すると起こります)されるとアノテーションクラスはあらたにクラスロードし直されるのか…

リフレクションオブジェクト全部ぶんまわす以外に…

ある値をセットされている特定アノテーションインスタンスを条件検索して、そのインスタンスが紐ついている AnnotatedElementをサクっと取る方法はないんだろうか。全部ぶんまわさないと、ならないのはパフォーマンスに難があるような…。なにか良い方法はな…

gcviewer

…を、勝手に改造して私家版にしていたのですが公開してみます。以下のアップデート項目に興味を引かれたらお試しあれ!*1 パーマネント領域もグラフ化(SUN JDK1.4だけしか出ないかも?) スケールは実数値も許可(微調整すれば表示領域ぴったりにも) 微妙に日…

JavaMail末尾日本語に注意

JavaMailのJISエンコードには結構致命的な問題があります。本文末尾に漢字があると、JISの漢字OUTコードが入らないという問題です。末尾が半角英数字記号なら漢字OUTが付きますが、改行文字などの制御コードはアウトです。例えば改行文字は、w) という文字に…

Tomcatでクラスタリング

Tapestryの案件で、クラスタリングする必要がでてきたので土曜ぐらいからチョコチョコと調査した結果、ローカルで実現成功!! 今後のためにメモしておきます。Apache+Tomcatだけで実現できました。最終的にはRedHat9に入れるのですが、Win2000上で確認作業…

Tomcat5の文字化け

Tomcat5を使った最初の案件の時もハマった問題をすっかり忘れていた。さっき調査しながらようやく思い出した。 もう今後は標語にして絶対忘れないようにしなければ。 Tomcat5をインストールしたら、server.xml内のConnector全てにuseBodyEncodingForURI="tru…

S2DAOの仕様はむずい…

こんなARGSアノテーションを入れたコマンドがありまして、この3つの項目はセットでユニークキーとなっています。 public static final String getHtmlTemplate_ARGS = "PAGE_SET_ID,PAGE_KIND,CATEGORY_ID"; public PageTemplate getHtmlTemplate(int pageS…

サーバーで画像加工

…を、機能の1つとして実装しなければならなくて、Tapestry のページなのに awtのJava2Dで行ってストリーミングして返却するのを作った。Windows上では動いていたのでokokと思っていたら、本番サーバーではアウトだった。 java.lang.InternalError: Can'…

Regexpプラグイン

エクリプスwikiで紹介されていた RegEx Testerプラグインですが、私がダウンロードしたときは書庫は壊れているし、お金取るようになったいたたので(ライセンス払わなきゃ壊れた書庫がダウンロードされる仕組みかと一瞬思ったが後日治っていた)、シンプルな…

OGNLの、な、なんじゃこりゃ。

普通にプロパティを文字列比較する際、 condition="ognl:strProp == 'A'"…でも condition="ognl:strProp eq 'A'"…でも、エラーになります。 http://www.ognl.org/2.6.7/Documentation/html/LanguageGuide/apa.html ココをよく読むと、信じがたいことに、数値…

VSSプラグインの日本語化

VSS Pluginを仕事で使っているんですが、ちょっと日本語化してみました。Eclipse2.1でも3.0でも動作させたかったので、vssplugin 1.5.0 をベースにしています。 私の訳は非常にあやしいですが、vsspluginはメッセージボックスが多いので、うっかり目的と逆の…

インナークラスからエンクロージングインスタンスの取得

ついでにインナークラスから、属するエンクロージングインスタンスの取り方もついでに残しておきます。これも意外と最近知りました。 エンクロージングインスタンスのメンバーやメソッドは、インナークラスに同じ識別子が無い限り、直接使うことができますが…

外部から生成可能なインナークラス

Eclipse JDT Pluginのソースをハックしていて初めて知ったのですが、なんとインナークラスなのに外部から直接生成したり、staticメンバを持たせることができる方法がありました。 これをするには全然むずかしいことはなく、ただ単にインナークラスの宣言にst…