タグ

Java SE 8に関するkuwalabのブックマーク (27)

  • Optionalの取り扱いかた - 日々常々

    JavaSE8で追加されたjava.util.Optionalにはnullとの戦いに終止符を打ってもらいたいと思っているんですが、思ってるだけだと何も起こらないので、使い方とか思ったこととかを一通り書いておきます。 Optionalのファクトリメソッド Optionalのインスタンスメソッド 値を取得するもの 値を使用するもの Optionalのまま扱うもの まとめ なお、一通りと言いつつOptionalIntとかはスルーしています。機会と書くことがあればそのうち書くかもしれません。 Optionalについては諸事情(遅筆とか理解不足とか分量とか)によりJavaエンジニア養成読では軽い紹介にとどまっておりましたので、補足としてお読みいただけると幸いです。あと、この辺も参考にどうぞ。 OptionalのJavadoc 一通り触って適当にコメント書いたコード(GitHub/sandbox)

    Optionalの取り扱いかた - 日々常々
  • ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)

    Yahoo! JAPANのデータパイプラインで起きた障害とチューニング - Apache Kafka Meetup Japan #5 -Yahoo!デベロッパーネットワーク

    ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
  • Java SE 8 Lambda & Stream API Overview from History

    DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ...............................................

    Java SE 8 Lambda & Stream API Overview from History
  • Java 8 Date and Time API の実践的なチートシートできたよ~ - tokuhirom's blog

    Java8 を使いこなそうとすると、やはり Date and Time API も使いこなす必要がでてくる。 我々 Perl 畑出身の人間からすると、Perl の世界では DateTime/Time::Piece というモジュールが一般的に日付の計算に使われており、iandeth.さんのブログエントリがチートシートとしてよく知られている。このいつも見慣れたエントリの体裁で、一般的な日時の操作を実用的に教えてくれるエントリが欲しくて書いた。 junit のテストケースとして書いてあるので、適当にコピペして QuickJUnit で動作確認するとよい(assertはしてないけど)。 なにかあれば教えていただけるとありがたいです。

  • JavaFX Dialogs (official) | code.makery.ch

    JavaFX 8u40 finally includes simple Dialogs and Alerts! I’ve been waiting for this since 2012! In the meantime I wrote about how to use Dialogs in JavaFX 2 and later in JavaFX 8 with ControlsFX. Now that they are available in the official JDK, let’s learn how to use them. Prerequisites To use the official JavaFX Dialogs you need JDK 8u40 or later. → Download JDK 8u40 or newer. Standard Dialogs Inf

    JavaFX Dialogs (official) | code.makery.ch
  • Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena

    ※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分で数個定義する感じになると思います。もちろん数個でも効果はでかいのですが。 また、おそらくStreamを受け取ったり返したりするメソッドを定義することは、めったにないのではないかと思います。 Mapでの拡張も、メソッド内部での処理記述がかわる話で、メソッドの引数や戻り値はMapのまま変わりありません。 Javaでのプログラムの構造というのは、メソッドの引数や戻り値の型がなんであるかで決まると言うことができます。その意味では、lambdaやStreamというのは処理の記述は変わるけどプログラムの構造は変わらないとなります。 けれども

    Java8でのプログラムの構造を変えるOptional、ただしモナドではない - きしだのHatena
  • Date and Time API 徹底攻略(1) - 準備は大切にしよう - Programming Studio

    まもなく Java SE 8 がリリースされ、新APIの目玉の一つである "Date and Time API" に関する記事が増えてきたように思えます。直近ではアリエル・ネットワークさんのブログ「Java8の日付および時刻処理(Date/Time API(JSR-310))の紹介と利用指針」が公開されましたが、正直な話、JSR 310 の仕様書やその原点である ISO 8601 の規格書を読み込んで入れば、ああいう適当なことは書けないよね?というのが所感です。これはその他の Date and Time API を取り上げた記事すべてに言えることですが、「利用指針」と上から目線とも取れる表現が使われていたため、特に気になった次第です。 そもそも、従来の java.util.Date/java.util.Calendar と Date and Time API がどう違うかというと、元となっ

  • 社内Java8勉強会 ラムダ式とストリームAPI

    5. 5 / 54 ラムダ式とストリームAPI • ラムダ式とは関数を簡便に表現するための記法。 • ストリームAPIは、ラムダ式を利用したコレク ション操作用のAPI • 関数型プログラミング言語由来。歴史は古い。 • これまでの手続き型やオブジェクト指向的なプ ログラミング手法から、関数型プログラミング に変わります。 • パラダイムシフトのよかん!! 6. 6 / 54 簡単なサンプル • フルーツの一覧の中から • 名前が“りんご”で始まり、 • 値段が100円以上のものを、 • 値段順で並び替え、 • 名前だけを取り出して、 • リストを作成する 1 List<String> apples = fruits.stream() 2 .filter(f -> f.getName().startsWith("りんご")) 3 .filter(f -> f.getPrice() > 10

    社内Java8勉強会 ラムダ式とストリームAPI
  • LINQ to Objects と Java8-Stream API の対応表

    Java8 で filter や map が使えるようになったー! というわけで .NET の LINQ to Objects との対応表を作ってみました。 2018.2.7 - Kotlin も追記しました! LINQ - Enumerable クラス (System.Linq) Java8 - Stream (Java Platform SE 8 ) Kotlin - kotlin.collections, kotlin.sequences らへん の比較です。 kotlin.collections は遅延ではないので注意です。 Java の方は Collectors (Java Platform SE 8 ) も使います。 まだ試したものは少ないので間違ってるかもしれない & カテゴライズが適当 なので、編集リクエストしてもらえるとありがたいです。 機能 LINQ Java8 Kot

    LINQ to Objects と Java8-Stream API の対応表
  • Java8 で StringBuilder/StringBuffer クラスがリファクタリングされていました。 - 地平線に行く

    ついに Java SE 8 がリリースされました! そこで、早速ダウンロードして、Java 8 のソースコード(src.zip)を Java 7と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。 そこで、そのうち StringBuilder/StringBuffer クラスについて調べてみました。 引数に null が渡されたときの処理 append メソッドの仕様で、「引数が null の場合、"null" という4文字が追加される」というのがあります。 この仕様について、Java 7までは "null" という文字列を追加するという実装がされていました。 // Java 7 Update 51 (AbstractStringBuilder クラス 422行目〜) public AbstractStringBuilder app

    Java8 で StringBuilder/StringBuffer クラスがリファクタリングされていました。 - 地平線に行く
  • Java8 Lambdaの文法拡張まとめ - きしだのHatena

    デフォルトメソッドは前に解説しました。 Java8で最もインパクトのある構文拡張、デフォルトメソッド ここでは、それ以外の構文拡張についてまとめておきます。 ラムダ式 実装すべきメソッドがひとつだけのインタフェースを関数型インタフェースといいます。 UnaryOperatorインタフェースは実装すべきメソッドがapplyメソッドひとつだけなので、関数型インタフェースになります。 たとえば、UnaryOperatorインタフェースを実装したクラスを定義すると次のようになります。 class MyOp implements UnaryOperator<String>{ @Override public String apply(String t) { return "** " + t + " **"; } } このUnaryOperatorインタフェースを使う、List#replaceAllを

    Java8 Lambdaの文法拡張まとめ - きしだのHatena
    kuwalab
    kuwalab 2014/03/19
    かえってこれをみてみる
  • 詳解 Java SE 8 第1回 Java SE 8概説

    今回から、Java SE 8について紹介していきます。1回目の今回は、Java SE 8の成り立ちや、主な新機能について紹介します。 Java SE 8の成り立ち Java SE 8の成り立ちについて紹介するには、まずJava SE 7について言及しなければなりません。というのも、Java SE 8の主要な機能はもともとJava SE 7で導入される予定だったからです。 しかし、Java SE 7のリリースは遅れに遅れていたのです。特にProject LambdaとProject Jigsawはなかなか議論が収束せず、いつ合意に達するか全く読めない状況でした。 そこで、2010年9月にJava SEのチーフアーキテクトのMark Reinhold氏がblogで2つの案を提示したのです。 Plan A: すべてを含んだJava SE 7を2012年中旬にリリース Plan B: Projec

    詳解 Java SE 8 第1回 Java SE 8概説
  • 初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築

    2014年3月18日に一般公開予定のJava SE 8へのバージョンアップでは、新たな表記法として「ラムダ式」が追加されます。このラムダ式を使うことによって効果を発揮する数々のAPIも追加されることになり、今回のバージョンアップはJavaを使う人にとって無視できないバージョンアップとなります。 しかしラムダ式は今までJavaプログラミングをやってきた人でも前提知識なしにソースだけを見て理解するのは難しい内容となっています。この連載では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式について解説していきます。 JDK 8は2013年9月10日に開発者向けプレビュー版が公開され、2014年2月18日現在、Early Access版がリリースされています。 コラム「ややこしいJavaのバージョン番号」 Javaのバージョン番号について、ところどころで1.8のよ

    初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築
    kuwalab
    kuwalab 2014/02/19
    そろそろ学習していかないとかな。
  • ラムダ禁止について本気出して考えてみた - 9つのパターンで見るStream API - Taste of Tech Topics

    こんにちは @cero_t です。 今日のテーマは・・・ラピュタ禁止令! バルス! いや違う。ラムダ禁止令、です。 さて、なかなかの滑り出しですが、今日はただのラムダの紹介ではなく、禁止令に主眼を置いて語ります。 このエントリーは、Java Advent Calendar 2013の12/16分の投稿です。 http://www.adventar.org/calendars/145 前日は @sugarlife さんの JDK 8 新機能ダイジェスト (JDK 8 Features) です。 翌日は @setoazusa さんです。 ラムダ禁止令はあり得るのか? 勉強会やその懇親会などで、たびたび「ラムダ禁止令が出るのではないか」が話題に上ることがあります。 「そりゃ禁止する組織もあるでしょうね」というのがお決まりの答えなのですが、ただそれに従うだけでは面白くありませんし、要素技術の発展も

    ラムダ禁止について本気出して考えてみた - 9つのパターンで見るStream API - Taste of Tech Topics
  • JDK 8 新機能ダイジェスト (JDK 8 Features) #java - unnamed

    この記事は Java Advent Calendar 15 日目です! 14日目は @megascus さんの 動的SQLでPreparedStatement+プレースホルダを使用する - 水まんじゅう でした。 明日は @cero_t さんです。 まえがき いよいよ JDK 8 が来年の3月に正式リリースされます。素晴らしいことに Java Japan User Group の皆様の blog や記事、 JJUG Night、CCC などの勉強会やカンファレンスなど、JDK 8 の新機能が紹介されている場が多いので、既にある程度知っている人も多いのではないでしょうか。しかし、JDK 8 全体としてどのような機能が加わるのか、それを把握する方法がよく解らない人もいらっしゃると思います。ここではどうすれば JDK 8 の新機能を確認できるのか、そして新機能はどう言ったものがあるのか簡単なダイ

    JDK 8 新機能ダイジェスト (JDK 8 Features) #java - unnamed
    kuwalab
    kuwalab 2013/12/16
    3月なんだなあ。
  • Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena

    Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど

    Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena
  • Java8のStreamを使いこなす - きしだのHatena

    さて、Java8で関数型っぽいことをやって遊んでみたわけですが、実際はそんな書き方しませんよね。 Java8で実際に使うのは、Streamです。 ということで、Streamの使い方をひととおり見てみます。 ※5/17 仕様変更があったので、修正しました 基 まずは、Iterableインタフェースに用意されたforEachメソッドを見てみましょう。 List<String> names = Arrays.asList("hoge hoge", "foo bar", "naoki", "kishida"); names.forEach(s -> System.out.println(s)); これで次のように表示されます。 hoge hoge foo bar naoki kishida いままでの拡張forだと次のように書いてました List<String> names = Arrays.a

    Java8のStreamを使いこなす - きしだのHatena
  • Java 8を関数型っぽく使うためのおまじない - きしだのHatena

    やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ

    Java 8を関数型っぽく使うためのおまじない - きしだのHatena
    kuwalab
    kuwalab 2013/05/01
    カリーか
  • IT news, careers, business technology, reviews

    The rise of synthetic media: Get ready for AI avatars at work

    IT news, careers, business technology, reviews
    kuwalab
    kuwalab 2013/04/16
    Base64とか地味に効くな。
  • ProjectLambda・第2版・1部(関数型インターフェース〜ラムダ式) - きつねとJava!

    →2部(ラムダ式(実質的にfinal・スコープなど)〜メソッド・コンストラクタ参照)ここで使用されているサンプルは、lambda-8-b84-03_apr_2013に基づいて作成されています。現在の仕様とは違っている点があるかもしれませんので注意してください。 第2版の説明 以前からProjectLambdaについていろいろ書いてきました。 最初の投稿は2012/2/14、バレンタインの日でした。(投稿日が物語るように恋人居ないんです) 思えば一年以上前、志望校の一般入試が終わって精神的に解放されたころでした。(受験勉強中にProjectLambdaで遊んで現実逃避してたのは内緒w) あの頃と今とではかなり仕様が変わってしまっています。なので、書き直してみたいと思いますのでお付き合いください。 なお、参考のために古い記事も消さずに残しておきます。 ProjectLambda対応JDKの導入

    ProjectLambda・第2版・1部(関数型インターフェース〜ラムダ式) - きつねとJava!