読者です 読者をやめる 読者になる 読者になる

mike-neckのブログ

JavaかJavaFXかJavaEE(なんかJava8が多め)

ラムダでいろいろやってたら、コンパイラーのバグにハマった件

こんにちわ、みけです。 表題の件ですが、すでにOpenJDKにバグ登録されて、ステータスがfixedになっているのですが、 まあしらなかったのでハマってしまいました。 JDK-8054210 NullPointerException when compiling specific code. バグの出るコード例 タイ…

JavaOne2014報告会Tokyoに参加してきた #j1jp

こんにちわ、みけです。 JavaOne 2014 サンフランシスコ報告会 Tokyoが 昨日(2014/10/18)開催されたので行ってきました。 詳細な内容は@kikutaro_さんが書いていますし、togetterにツイートのまとめなどがありますので、僕は適当なポエムを綴ります。 基調講…

【書評】Java SE8 実践プログラミング - 2章のみ

こんにちわ、みけです。 数々の技術書の翻訳で有名な柴田芳樹さんが 『Java SE8 実践プログラミング』 の書評を募集していたので、応募しました。 現在の進捗はこんな感じですが、 1章「ラムダ式とは」(未読) 2章「ストリームAPIの使い方」(読了) 3章「ラム…

StreamはAutoCloseableであると認識していないとアレな件

こんにちわ、みけです。 表題、何言ってるかわかりませんね。 ファイルを読み込んでStream<String>を扱うときに、 try-with-resourcesでStream<String>を宣言しておかないと、 リソースリークがあるかもしれないということです。 具体的には return Files.lines(path, Standa</string></string>…

Java8のOptionalの使い方メモ

こんにちわ、みけです。 2014/10/10のScala勉強会に向けてScalaをやってたら、 Optional<T>の自分でもいいと感じる書き方がわかってきたつもりなので、 メモ書きしておきます。 Optional<T>を使うときの自分的なベストプラクティス。 #isPresentは使わない 極力#ma</t></t>…

jettyで実行可能warファイルを作る

こんにちわ、みけです。 だんだん寒くなってきて、一日の半分ほどは寝てるような状態です。 ここ数週間(!!!)、JavaFXをサーブレットから叩くアプリケーションを作っているのですが、 最初は単純にwarファイルを作って、 jetty-runnerで走るようにするだけの…

Java8のDate and Time API - JPAでLocalDateTimeを扱う

こんにちわ、みけです。 最近、ずっとJava8のDate and Time APIをいじってきましたが、 多分、これでおわりです。 今日は新APIと古いAPIの相互変換についてです。 java.time.Instant 新APIと古いAPIでの相互変換はjava.time.Instantを経由して行います。 @Ru…

Java8のDate and Time API - LocalDateTimeとZonedDateTimeの相互変換

こんにちわ、みけです。 ここ最近さわってるJava8 Date and Time APIですが、 今日はLocalDateTimeとZonedDateTimeの相互変換についてです。 LocalDateTimeとZonedDateTimeの変換 ZonedDateTimeからLocalDateTimeへはゾーン情報を取り除くだけなので、 変換…

Java8のDate and Time API - 文字列から日付を取得してみる

こんにちわ、みけです。 前回、前々回に引き続き、Java8のDate and Time APIをさわります。 今日は、文字列から日付を取得する方法です。 DateTimeFormatterクラス 文字列とTemporalAccessorとを変換するクラスです。 DateTimeFormatter#format(TemporalAcce…

Java8のDate and Time API - ZonedDateTimeを少しだけさわってみる

こんにちわ、みけです。 前回に引き続き、Java8のDate and Time APIについて書いていきます。 今回はZonedDateTimeについて書きます。 ZonedDateTimeクラス ZonedDateTimeクラスは日時情報に加えて、時差情報をもつクラスです。 最初、よくわからずLocalDate…

Java8のDate and Time API - LocalDateTimeを少しだけさわってみる

こんにちわ、みけです。 わけありで、LocalDateTimeとかZonedDateTimeを 触っててわからんところいっぱいあったので、 メモってみました。 Java8のData and Time Apiはこれだけではないけど、 はじめて触る人がハマるだろう箇所にとことんはまっています。 L…

【ネタ】独自の日本語フォーマットで仕様を記述すれば、プログラミングレスでソースコードを自動生成できます。そうJavaならね。

こんにちわ、みけです。 タイトルからして明らかにネタなのですけど、 独自の日本語フォーマットで仕様を記述すれば、 プログラミングレスでJAVAソースコードを出力できるような アノテーションプロセッサーを作ってみました。 とはいっても、ネタで数時間で…

mustache.javaを使ってソースコードを出力する

こんにちわ、みけです。 アノテーションプロセッサーからソースコードを自動生成する際に、 ASTでソースコードを記述するのも魅力的なわけですが、 自分にあったライブラリー(学習コストが低い奴)を探すの面倒だったので、 mustacheのJava実装、 mustache.ja…

アノテーションプロセッサーで自動生成するときにハマったあたりの話 #ソースコード自動生成

こんにちわ、みけです。 昨日に引き続いてアノテーションプロセッサーのあれをあれするあれです。 概要 プロセッサーを指定する アノテーションプロセッサーにパラメーターを渡す プロセス対象のプロジェクトのリソースは取得できない 1. プロセッサーを指定…

Gradleでアノテーションプロセッサーを使ってソースコードを生成するようなプロジェクトを作ってみる #ソースコード自動生成

こんにちわ、みけです。 前回org.glassfish.grizzly.http.server.CLStaticHttpHandlerと JAX-RS(Jersey)を組み合わせてアプリケーションを作って、 ルートにデプロイしたところ、 片方のハンドラーしか動作しないという残念な結果になってしまいました。 な…

JJUG ナイト・セミナー 「ビール片手にLT&納涼会」でLTしてきた #jjug

こんにちわ、みけです。 件のとおり、LTしてきました。 まあ、あまり面白いLTではなかったので、 アレですが、みなさんがStreamをうまく書けるようになるコツを 伝えられたのではないかと、 勝手に思って、自己満足しています。 なお、当日の様子は@yamadamn…

Grizzly2上でJAX-RSを走らせつつ、staticなコンテンツのサーバーにもなるようにしようとしてハマって解決できてない件

こんにちわ、みけです。 諸事情があって、というよりは、 ちょっとやってみたいなと思ったので、 herokuでGrizzly2+JAX-RS(Jersey)を動かすアプリケーションを 書いています。 この組み合わせはよくあるというか、 mavenのarchetypeに登録されているので、 …

spring-bootとJava DBとgradleとintellij-ideaとあれこれ #jggug_boot #jggug

こんにちわ、みけです。 先週の金曜(2014/08/01)にJGGUG主催の ドキッおっさんだらけのGrails 3.0先取り!?Spring Boot入門ハンズオン に行ってきました。 なお、この勉強会のツイートなどは、多分まとめられてると思います|д゚)チラッ また、参加者の皆さんのブ…

Java8 Streamでバリバリやれるようになりたい人のためのFunctional Interfaceまとめ

こんにちわ、みけです。 もう、Streamの書きすぎで、 なんだか、for文が書けない身体になってしまいました(大袈裟) というわけで、Streamなのですが、 慣れていないと 「はよ!Supplier、BinaryConsumerをはよ!」 とIDEにせかされて、 あれっ?これってなん…

Jerseyをjava -jarで動かす

こんにちわ、みけです。 某ブログで|д゚)チラッしている方がいらっしゃったので、 Jerseyをjava -jarで動かす (Gradle編) を書くことにしました。 Jerseyはサーブレット経由でなく com.sun.net.httpserver.HttpServer や Grizzly 、Jettyで動かす事もできるのでG…

herokuでSpark2.0.0を動かしてみる #herokujp

こんにちわ、みけです。 不勉強なもので、 SinatraライクなJavaのwebアプリケーション・サーバーの Sparkなるものがあるということを、 きしださんのブログで初めて知ったので、 試してみました。 準備 maven centralレポジトリーにartifactがあるので、 そ…

いまさら聞けないOptionalIntのまとめ

こんにちわ、みけです。 表題の通り、いまさらOptionalIntって何って人に聞けなかったので、 自分で試してみました。 まずはテスト内でこれらの値を準備しておきます。 private final OptionalInt value = OptionalInt.of(1); private final OptionalInt emp…

herokuでOpenJDK1.7以上を使っているgradleアプリケーションで、文字化けによるコンパイルエラーへの対処法

こんにちわ、みけです。 くっそタイトルが長いのですが、 ちょっと一昨日くらいにハマったので メモ代わりに書いとこうと思ったので… 問題 : OpenJDK1.7以上で日本語を含むソースコードをコンパイルするとエラーが発生する 日本語をソースに書かない人は特に…

groovyで強引にblog更新pingを送ってみる

こんにちわ、みけです。 xmlrpcでブログ更新pingを打ってみる キーワード「xmlrpc ping ブログ更新」で検索してみると、 大抵WordPressでのping送信の設定方法が出てくるので、 うーんと思ってたので、 googleのドキュメント Google ブログ検索の更新通知 AP…

インテグレーションテストを実行するためのbuild.gradleの記述法

こんにちわ、みけです。 某社で一日中ドラクエやってて、 何の成果もあげていません。 … あ、いや、そんなことはどうでもいいです。 いや、よくないか。 インテグレーションテストとは… とりあえず、ここでは、乱暴な言い方ですが、 ソフトウェアの機能に対…

Gradleでherokuアプリケーションを作成する

こんにちわ、みけです。 なんかgithubでブログやってたのですが、 なんかoctopressが調子悪くて、はてなで書くことにしました。 それ以前に僕が調子悪いですけど… Gradleでherokuにアプリケーションをデプロイする Gradle herokuで検索をするとGradleで作っ…