タグ

2009年10月16日のブックマーク (2件)

  • カスタムコンポーネントで注意すること(invalidateProperties / commitProperties) (2009-06-24 - NetPenguinの日記)

    カスタムコンポーネントを作っていて、ちょっとはまりそうになったことのメモです。 Flex の作法ではプロパティ値の変更時にいきなり UI を更新してはいけません。プロパティ値が変更されたときは、変更を記録しておいて invalidateProperties を呼び出すに留めます。invalidateProperties を呼び出しておくと、一連の処理後*1に commitProperties が呼び出されます。このタイミングで変更のあった*2プロパティの値とそれに影響される他の値を確定し、必要であれば invalidateSize や invalidateDisplayList を呼び出して、UI を更新します。 この辺りのことは、id:s-ohira さんの asでカスタムコンポーネント(1)、(2)、(3) が詳しいです。 簡単にまとめると、 プロパティ値を変更する invalidat

    カスタムコンポーネントで注意すること(invalidateProperties / commitProperties) (2009-06-24 - NetPenguinの日記)
    Felio
    Felio 2009/10/16
    性急にプロパティを変更してはいけない。invalidateProperties を呼んでから commitProperties で実際の書き換えを行わなければならない。
  • 共変とか反変とか - NetPenguinの日記

    共変 Java の型パラメータは共変では無いので、List<Number> に List<Integer> を代入できないのは有名。これを許容していないのは、型の安全性を保つために他ならないのだけど、配列は許容していたりする*1。 Number[] array = new Integer[1]; array[0] = 0.1d; ただ、Java の配列は共変なのだけど、型の安全性をコンパイル時に保障してくれないというおまけつき。実際に Integer の配列を Object[] の変数に代入して、Double とかを格納しようとすると、実行時に例外がでる。 Exception in thread "main" java.lang.ArrayStoreException: java.lang.Double at CoVariantArray.main(CoVariantArray.java:

    共変とか反変とか - NetPenguinの日記
    Felio
    Felio 2009/10/16
    variant, invariantのいい説明