タグ

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

  • アイドルマスターモデリング比較強化版

  • MethodHandles.Lookup (Java Platform SE 8)

    ここで、型Cはメンバーが検索されるクラスまたはインタフェースで、ルックアップ・メソッド内でrefcという名前のパラメータとして記述されています。メソッド型MTは、戻り型Tと引数型シーケンスA*から構成されます。コンストラクタも引数型シーケンスA*を持ち、型Cの新しく作成されたオブジェクトを返すと見なされます。MTとフィールドの型FTはどちらも、typeという名前のパラメータとしてドキュメント化されています。仮パラメータthisはC型の自己参照を表しています。これは、存在する場合は常にメソッド・ハンドル呼出しの先頭の引数になります。(一部のprotectedメンバーでは、thisの型がルックアップ・クラスに制限される場合があります。下記を参照してください。)名前argは、メソッド・ハンドルのほかのすべての引数を表しています。Core Reflection APIのコード例に含まれる名前thi

  • リフレクションを使わずにMethodHandleを使って動的にメソッドを実行してみる。 - Develop with pleasure!

    Java7からJVM上で動作する動的言語のためにInvoke Dynamicという仕組みが導入された。 Invoke Dynamicの導入前までは、動的言語の特性から静的に型が判断できない実行処理においては、各言語毎に処理系が必要で、その処理系に実行処理が委譲されていた。これがInvoke Dynamicの導入によりJVM側で関数ポインタを切り替えて処理が行えるようになり、各言語毎の処理系に処理を委譲せずともJVMで処理が完結するようになった。そのため、JITによる最適化の恩恵をフルに受けれるようになり、JVM上で動作する動的言語のパフォーマンスが向上するみたい。 で、そんなInvoke Dynamicだけど、動的言語以外にJava自体にも恩恵があり、リフレクションを使って動的に処理を実行している箇所は、リフレクションではなくMethodHandleを使用してInvoke Dynamic命

    リフレクションを使わずにMethodHandleを使って動的にメソッドを実行してみる。 - Develop with pleasure!
  • Java のリフレクションで super.method(...) 相当の呼び出しはできない - 映画は中劇

    下の例のように super.メソッド名(...) とすると親クラスのメソッドが呼べますが、リフレクション経由では同じようにできないことが分かりました。 class Parent { public void bang() { System.out.println("Parent.bang!"); } } class Child extends Parent { @Override public void bang() { System.out.println("Child.bang!"); } public void parentBang() { super.bang(); } } public class Main { public static void main(String[] args) throws Exception { new Child().bang(); // => Ch

    Java のリフレクションで super.method(...) 相当の呼び出しはできない - 映画は中劇
  • オブジェクト指向の問題点 - ビスケットのあれこれ

    オブジェクト指向プログラミングを神格化するような記事が流れてきたので,僕が知っている問題点について書いてみたいと思います.僕がまだ学生だったころは,オブジェクト指向の評価もまだそれほど定まっていなくて,オブジェクト指向の次はどんなパラダイムが出てくるかとか普通に学生レベルで議論していたものですが,ここまで強大になってしまうとそれを打ち負かそうなんて気にはならないのでしょうか.僕にはオブジェクト指向が普遍的な真理という感じは全然しなくて,ここまで使われてる理由は,現実的なテクノロジーで大きなシステムを作らなければならない必要性のほうを優先した結果であると認識しています.オブジェクト指向がその後の25年ほどもずっと安定してその地位を保てるほど素晴らしいものとは思えないのです. 以下で上げる問題点は,個別に解決している研究はあったりしますし,僕も論文を書いたりしましたけど,実際の言語に導入されて

    オブジェクト指向の問題点 - ビスケットのあれこれ