2016年5月3日のブックマーク (4件)

  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは、お名前.comで取得されています。 お名前.comのトップページへ Copyright © 2020 GMO Internet, Inc. All Rights Reserved.

    dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
    green_abc
    green_abc 2016/05/03
  • Javassist 入門

    Java Press vol. 35, pp.76--85, March 2004. Java プログラムの"舞台裏"大追跡 Javassist -- Java バイトコードを操作するクラスライブラリ -- 入門 先端J2EE サーバJBoss が,人知れず内部で行っていること 千葉 滋 東京工業大学・大学院情報理工学研究科 はじめに Java バイトコードを変換するライブラリとしては Jakarta BCEL が有名です。BCEL は Java クラスファイルのデータ構造を直接操作する場合には便利ですが、Java クラスファイルの内部仕様、つまり Java バイトコードに詳しくないと使いこなせません。一方、Java バイトコードにあまり詳しくない開発者でもバイトコード変換を実装できるようにするライブラリが Javassist です。 バイトコード変換 はっきりいって、つい最近までJava

    green_abc
    green_abc 2016/05/03
  • Javassistを使って実行時のクラス拡張をやってみた。 - うなの日記

    Javassistを使うと、実行時のクラス拡張(コンパイル済みのクラスをJavaプログラム実行時に改変し、メソッドに処理を追加したり、フィールドを追加したりすること。)ができます。以下は簡単なサンプルとはまったところについてのメモです。 簡単なサンプル "com.example.Kitten"を"名前を話すcom.example.Kitten"に拡張してみます。基的な手順は次の通り。Javassistは3.4を使用しています。 ClassPoolを作る。 CtClassを作る。 CtClassのAPIを呼び出し、クラスを拡張する。 CtClass#getDeclaredMethod(String)で修正するメソッドを取得。 CtMethod#setBody(String)でメソッドの体を修正。 CtClass#toClass(ClassLoader, ProtectionDomain)

    Javassistを使って実行時のクラス拡張をやってみた。 - うなの日記
    green_abc
    green_abc 2016/05/03
  • 関数型プログラミング入門 | POSTD

    多くの関数型プログラミングに関する記事が教えてくれるのは、抽象的な関数型のテクニックです。つまり関数合成やパイプライン、高階関数などです。この記事では違います。ここでは、プログラマが毎日書く、命令型で非関数型のコードの例を示し、それを関数型の形式へ書き換えます。 最初のセクションでは、短いデータ変換のループを取り上げ、map関数やreduce関数に書き換えていきます。2つ目のセクションではより長いループを取り上げ、ユニットに分解し、それぞれのユニットを関数型に書き換えます。3つ目のセクションでは、連続した長いデータ変換のループを関数型のパイプラインに分解します。 ここではPythonでの例を取り扱います。というのも多くのプログラマはPythonを読むのは簡単だと思っているからです。多くの例では、mapやreduce、パイプラインなどの多くの言語に共通する機能を例示するため、Python的な

    関数型プログラミング入門 | POSTD
    green_abc
    green_abc 2016/05/03