mirai-city.org - このウェブサイトは販売用です! -&nbspmirai-city リソースおよび情報

ウチの会社でやってみても絶対流行らないと断言できる.
そんな弊社は大手(?)SIer.:-P
デジタルデバイドっていうか,格差あり過ぎ.


常駐先で昨年作ったフレームワークの保守サイトにXOOPS立てたんだけど,数年前,自社でXOOPS立ち上げた時と同じような感覚に陥る.これって既視感?

WEB+DB PRESS vol.33

特集1,特に第1章は,誰もが読んでほしい.

特集1
オブジェクト指向エンジニア必読 構造化プログラミング入門
10年先も使える知識を身に付ける!
第1章 「きちんとコードを書く」ための大原則……羽生章洋
構造化プログラミング前史
第2章 オブジェクト指向に活かす構造化の知見……黒枝真,羽生章洋
近代構造化技法とは
第3章 「仕事の流れ」「仕事上のルール」をモデル化する……黒枝真,羽生章洋
業務システムの次世代構造化

WEB+DB PRESS Vol.33

WEB+DB PRESS Vol.33

ジリ貧

この業界?ウチの会社?それとも地域性?
とにもかくにも,あまりの収益性の無さにちょっと危機感を覚える.


自分の食い扶持はどうにか稼げているが,それでも年貢の多さに,かなり萎える.
同業他社がどうやって収益上げているのか気になる所だが,他所も似たり寄ったりなんだろうか?
嗚呼,悲しき先細り商売.

続きを読む

Foo.class does not initialize class Foo!

Tiger(JDK1.5)からは,

Foo.class

とやっただけでは,static初期化子は実行されないよって話.実際に試してみたけど,本当にそうだった.確実に初期化したければ,「Class.forName()」を使わないとイケナイようだ.


そんな話,聞いてないよ〜.

これまで、クラスリテラル (Foo.class など) を評価するとクラスが初期化されました。5.0 では初期化されません。前の動作に依存するコードは書き直す必要があります。
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle

(追記)ちょっと誤解されそうなので補足しときますが,Class.forName()しないとstatic初期化子が動かないわけでは無いス.こんな具合にstaticメソッド呼べば,その直前にstatic初期化子は実行される.

public class Main {
    public static void main(String[] args) {
        System.out.println(Foo.class);
        Foo.bar();
    }
}

public class Foo {
    static {
        System.out.println("Initialization Foo...");
    }

    public static void bar() {
        System.out.println("call bar...");
    }
}

Tigerでの実行結果はこう.

$ java -cp . Main
class Foo
Initialization Foo...
call bar...

static初期化子の実行タイミングがちょっと遅れるだけなので,大局に影響なしっていうか,一種のトリビアですね.せいぜい,ログとか出してたら,出てくるタイミングがズレるくらいだろうか.


むしろ,このタイミングのズレが命取りになるような実装しちゃイカンだろう.
って自分の胸に手を当ててみる.:-D


(さらに追記)どうやら,この件で困っている人もいるようだ(問題となったコードは,まだ追えてない).
http://weblogs.java.net/blog/mister__m/archive/2006/08/bitten_by_the_c.html


この人,クラスの初期化を明示するRFE*1を上げていたので,せっかくだから投票しといた.もっかしたらJDK7から使えるようになるかも知れない(気の長い話だ).
Bug ID: JDK-6459208 Add API for initializing a Class and checking if it has been initialized
 →Bug ID: JDK-4993813 (reflect) Need a way to force a class to be initialized.

*1:Request For Enhancement