タグ

ブックマーク / kaiseh.hatenadiary.org (2)

  • 外部イテレータと内部イテレータ - kaisehのブログ

    Javaでコレクションクラスを作ってそのイテレータを実装する場合、Javaにはクロージャが無いので、外部イテレータを使うことがほとんどだと思います。 例えばint値のコレクションとイテレータを自作するときは、まず以下のようにIntIteratorとIntIterableを用意して public interface IntIterator { boolean hasNext(); int next(); } public interface IntIterable { IntIterator iterator(); } 以下のように実装します。 public class IntArray implements IntIterable { private int[] array; private int length; public IntArray(int[] array) { this.a

    外部イテレータと内部イテレータ - kaisehのブログ
    xenop
    xenop 2009/02/28
  • JavaからWin32 APIを簡単に呼べるnlinkを使ってみた - kaisehのブログ

    Windowsのファイルにhidden属性を付けたかったんですが、Pure Javaではそのようなことができないので、JavaからWin32 APIを呼び出せるnlinkを使ってみたら、ものすごく簡単でした。これは便利! 以下のようにするだけで使えます。 MSDNとかで、呼びたいAPIのシグネチャを調べる。 APIのDLLと同名のインタフェースを作って@DllClassアノテーションを付ける。 シグネチャに合わせたメソッドを定義して@DllMethodアノテーションを付ける。 NLink.create()でインタフェースのプロキシを生成して呼び出す。 ファイルにhidden属性を付けるコードは、次のようになります。 Kernel32.java @DllClass public interface Kernel32 { public static final int FILE_ATTRIBU

    JavaからWin32 APIを簡単に呼べるnlinkを使ってみた - kaisehのブログ
    xenop
    xenop 2008/06/05
  • 1