タグ

javaと言語仕様に関するlearnのブックマーク (3)

  • ProjectLambda・第2版・2部(ラムダ式(実質的にfinal・スコープなど)〜メソッド・コンストラクタ参照) - きつねとJava!

    ←1部(関数型インターフェース〜ラムダ式) ここで使用されているサンプルは、lambda-8-b84-03_apr_2013に基づいて作成されています。現在の仕様とは違っている点があるかもしれませんので注意してください。 キーワードとしての"_"(アンダーバー) 交差型キャスト ラムダ式と実質的にfinal ラムダ式のスコープ メソッド・コンストラクタ参照 メソッド・コンストラクタ参照の書き方 staticメソッド参照 インスタンスメソッド参照 コンストラクタ参照 静的ネストクラスコンストラクタ参照 インナークラスコンストラクタ参照 配列コンストラクタ参照 メソッド・コンストラクタ参照と型引数 メソッド・コンストラクタ参照とオーバーロード 前回はJavaのラムダ式がどういう物か、またその表記法を理解し、実際に使ってみました。 今回はラムダ式の導入に伴って変更される言語仕様やラムダ式と匿名ク

    ProjectLambda・第2版・2部(ラムダ式(実質的にfinal・スコープなど)〜メソッド・コンストラクタ参照) - きつねとJava!
  • 遅延評価いうなキャンペーンとかどうか - ぐるぐる~

    遅延評価については以前も書いてるんですが、そのときは結論なしでした。 が、ちょっと考えるところがあって、言語を Java に絞って自分の考えを明確にしておきます。 結論から書きましょう。 「Java(とC#) で遅延評価って書いてあるものは遅延評価ではない」です。 Java における「評価」とは まず一番最初に、Java で「評価」って言うと、どういうことを指すのかを確認しておきます。 言語仕様の該当部分を要約すると、こんな感じでしょうか。 プログラム中の式を評価すると、結果は 変数 値 無し のうちのどれかとなる。 評価した結果が値になる、というのはいいでしょう。それ以外の 2 つを軽く説明します。 評価の結果が「変数」とは? コメント欄で指摘が入っています。 代入の結果は変数ではありません(15.26)。 結果が変数となるのは、ローカル変数、現在のオブジェクトやクラスの変数、フィールド

  • Java5の型システムを理解するにはリフレクションAPIを使ってみるのが最短の近道になる - 達人プログラマーを目指して

    Java5における総称型(generics)の導入に伴い、Javaの型システムは以前と比べて高機能になった反面、理解するためのハードルが高くなっています。もちろん、Javaの型についてきちんと理解するためには言語仕様を勉強すればよいのですが、手っ取り早く理解するための方法としてリフレクションAPIを使ってみるというのが有効です。リフレクションAPIの先祖はJava1.xのころから存在しており、フィールド、メソッド、クラスなどの情報を実行時に取得するためのものですが、総称型に合わせてJava5から新しいAPIが追加されています。ここではリフレクションAPIを使い、Java5の新しい型システムについてまとめてみたいと思います。 JDK1.4までの型はすべてClassクラスのインスタンスに一対一対応する JDK1.4までに存在していた型はパターンに分けると以下の3通りに分類できます。 基型(i

    Java5の型システムを理解するにはリフレクションAPIを使ってみるのが最短の近道になる - 達人プログラマーを目指して
  • 1