タグ

ProgrammingとJava SE 8に関するItisangoのブックマーク (2)

  • Java8とC# - 平々毎々(アーカイブ)

    このエントリーは「C# Advent Calendar 2013」の17日目のエントリーです。 前日は id:ksasao さんの「GDI+ で描画&保存あれこれ - まちみのな@はてな」でした。 Java 8は2014年3月にリリースされる予定です。 どういう変更が含まれているのかは、Java 8のすべてにまとめられています。 また、きしださん(id:nowokay)のように、Java8に関する記事をたくさん書いている人もちらほらいます。 この記事では、InfoQの記事(および参照元の英語ブログ)を参考に、Java8の新機能をC#と比べてみたいと思います。 インターフェースの改善 インターフェースでstaticメソッドが定義できるようになった もともと、JavaのインターフェースはC#のインターフェースと違って、static finalなフィールドを持つことができました。 static

    Java8とC# - 平々毎々(アーカイブ)
  • Java 8を可能にしたJava 7の機能

    このステートメントには冗長な情報がたくさんあります – プログラマにこれほど明示的な指定を求めるのではなく,コンパイラ自身がもっと情報を検出できるようにするべきです。 実際にScalaなどの言語では,式から多くの型推論を行うことによって,このようにシンプルな代入式を書くことができます: val m = Map("x" -> 24, "y" -> 25, "z" -> 26); valというキーワードは,この変数が再割り当てされないようにするためのものです (Java変数のfinalキーワードに相当します)。 変数についての型情報はまったく指定されていません – 代わりにScalaコンパイラが代入式の右辺を調べて,代入される値を評価することで,変数の型を適切に判断してくれるのです。 Java 7では,限定された範囲の型推論機構が導入されました。次のような代入式の記述が可能になっています: M

    Java 8を可能にしたJava 7の機能
    Itisango
    Itisango 2013/11/13
    “メソッドハンドルはメソッドを実行するための,型指定を持ったリファレンスです。 (C/C++に詳しい開発者ならば) "タイプセーフな関数ポインタ",あるいはモダンなJava開発者ならば "新型のCore Reflection" と解釈してもよい
  • 1