2014年3月18日(米国時間)、ラムダを筆頭に数多くの新機能が含まれるJava 8がいよいよリリースされる。 ここ数年、JavaはOracleのSun買収による混乱、当初Java 7で実装されるはずだった多くの機能の先送り、さらにはJava 8のリリースの遅延など様々な要因によって強い停滞感があり、それが関数型言語の機能を取り入れたScalaなどJavaの代替となるJVM言語の台頭にも繋がった。 そうしたJavaプログラマの溜まりに溜まったモヤモヤを払拭するアップデートとして期待されているのが今回のJava 8だ。前述の通りラムダの導入による新たな構文からStream APIやTime APIといったライブラリの追加まで、非常に多くの新機能を含んでいる。 本稿ではそのJava 8の主要な新機能についてサンプルコードを交えて紹介していく。Java 8の新機能を押さえるための参考になれば幸い
Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。 まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメソッドとデフォルト実装 いままでインタフェースには実装をもつことができませんでしたが、Java 8からはインタフェースが実装をもてるようになります。 実装をもつメソッドを定義するときには、キーワードdefaultをメソッドの前につけます。 interface Foo{ void print(String s); default void twice(String s){ print(s); print(s); } } twiceメソッドが実装をもっています。この実装をデフォルト実装といいます。 デフォルトメソッドを実装するクラスで、デフォルトメ
Java8にlambda構文が入りましたが、これはクロージャーではない、とされています。 では、どのように「クロージャーではない」のか、ちょっと見てみます。 まず、lambdaを返すメソッドを定義します。 public static Supplier<String> createMessenger(String name, String address){ return () -> { return String.format("私は%s、%sに住んでる", name, address); }; } 呼び出すと、こんな感じでSupplierを受け取ります。 Supplier<String> messenger = createMessenger("きしだ", "ふくおか"); このSupplierを実行すると、次のようになります。 System.out.println(messenger.
やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ
久しぶりに、JJUG ナイトセミナー行って来ました。 今回は、JavaとHTML5がテーマとのことでした。 ■ イントロダクション(JavaとHTML5のこれまで) ひらいさだあき さん ・Javaの歴史 → JavaTimelineってのがある。HTML5で作られてる 懐かしいなあと。 ・Webの進化とか ・HTMLの歴史とか ・2013 Java8リリースされると思う lambda expressions JavaFX Java5以来の大きな変化になりそうな気がする ■ WebSocket の概要 Websocket ・リアルタイム・ウェブをもたらす技術として ・TCP上に構築された双方向のソケット通信プロトコル ・HTTPベース → FW超えるの簡単だろう 原理 HTTP GETリクエストを送ってブラウザがWebSocketにつなぎ替える URL スキーマは ws: or wss:
今年のJavaは要注目トピックがいっぱい! JavaOne Tokyo 2012 2日目 “テクニカルキーノート” 4月5日、7年ぶりのJavaOne 2日目です。初日のJava Strategy Keynoteに続いて、今朝は“Java Technical Keynote”と題した基調講演が行われました。場所は前日同様 六本木アカデミーヒルズ49です。 昨日に続いてMCはJavaOne Tokyo 2012実行プロジェクトリーダーの伊藤敬氏。残りの時間を目いっぱい楽しんでほしいと挨拶。 コーディングの簡略化が進むJava 7~Java 8 テクニカルキーノートは、初日のキーノートの内容を承け、より技術的に掘り下げたものです。伊藤氏の紹介を受け最初に登壇したのは、Java Language & VMのSpecification Leadを務めるAlex Buckley氏。同氏はおもに言
パーフェクトJavaとパーフェクトJavaScriptの両方の増刷が決定しました。 ありがたい、ありがたい。 先週JJUGの集まりで今年のJavaOneの様子を聞いてきたのでその感想を書きます。雑多な感想なので全体のまとまりは特にありません。 Java8リリースの予定が2013年に延びたようです。去年のJavaOneでJava7は2011年リリース、Java8は2012年リリースと発表していました。Java7は約束を守りましたがJava8は延びました。予想どおりです。この業界にいれば誰でも予言できる未来でしたが。2013年にリリースできるかですが、2013年の末まで考えれば今から2年あるので流石にリリースできるような気がします。 予想外だったのはJavaFXの動きです。Swingを置き換えてJavaのGUIライブラリのメインになるようです。AWT、Swingの流れの次がJavaFXという位
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く