日々常々

ふつうのプログラマがあたりまえにしたいこと。

Javadocに何を書こうか

これは Java Advent Calendar 2015 の 16 日目の記事です。 昨日は @yukung さんの Java で引数の null チェックで迷った話 でした。明日は @mdstoy さんです。 ちなみに過去のJavaアドベントカレンダーで書いたもの。 2014年: Javaであまりしないコーディン…

ハンズオンイベントに潜む悪魔(黒猫)

11/15に「Javaでwebアプリケーション入門」というイベントのお手伝いをいたしました。 #javajok で関西Java女子部さんのイベントです。 http://javajok.connpass.com/event/22044/ イベントページ http://backpaper0.github.io/2015/11/15/javajok.html 一緒…

#AsiyanAutomationAlliance をやりました

6月27日 Asiyan Automation Alliance 2015 ~JI・DO・U・KAッ!(2015/06/27)(兵庫県)kokucheese.com 第一回 AsiyanAutomationAlliance をや っています。現在進行中です。 りました!第二回AAAです。 運営なんですが、超寝坊しました。開始には間に合ったけ…

MavenSurefirePluginのバージョンのメモ

前置き プラグインのバージョンとかは上げるタイミングがあれば最新にする私ですが、設定によっては動かなくなったりして、一気に上げるのは厳しいこともあります。でもどこまで下げたらいいかわからなくて、やりたいことができるギリギリでお茶を濁すなんて…

WeldとJava SEとGradleとIDEAと

Weldを使ってみようと思いました。普段DIはSpring一本槍なのですが、それもどうかと思ったので。 opengl-8080さんやKazuhiraさんのようないつもの方々が既にやられていることだし、すぐできるだろうと思ってました。 JavaEE - JavaSE 環境でCDI(Weld)を使…

jBatchをgradle使ってSE環境で動かしてみる

JSR352-Batch Applicationを試してみた(Batchlet編) - しおしお(´・ω・`) jBatch(JSR-352) on Java SE 環境 | 寺田 佳央 - Yoshio Terada しおしおさんの書いたブログを見て、jBatch触ってみるかーという気になりました。 おれもそろそろjbatchかな— いろふ…

TimeUnitという物体

小ネタ。 java.util.concurrent.TimeUnit というクラスはご存知だろうか。ご存知?なら回れ右してください。お疲れさまでした。またの機会によろしくお願いします。 ... さて、読み進めているならばご存知でないはずなので、まずJavadocのリンクをば。 TimeU…

Calendar.Builderとやらを触ってみた

知らなくても生きていけるけど、知ってるとちょっと便利っぽいもの。 みんな知ってるのかもしれないけど、私は今日まで知らなかったから書いておきます。 もともとは今日 @khasunuma さんがされていた一連のツイートからです。その中で紹介されたスライドに…

匿名クラスとかローカルクラスとか

Java入門では割愛としていたローカルクラスと、ついでに関連の強い匿名クラスについて書いておきます。ネストしたクラスとかインナークラス(内部クラス)とかはそこそこしっかり書いたつもりなので、読んでいただけると嬉しいです。 Javaエンジニア養成読本…

JAX-RS ClientでBasic認証してみる

背景 REST APIにアクセスする必要がある。BASIC認証がかかっている。JAX-RSのClientAPIを使ってアクセスしたい。 とりあえずHTTPヘッダに直接AuthorizationとBase64エンコードしたのを突っ込んでやってたんだけど、なんかイマイチな感じがした。で、うらがみ…

カテゴリ「Java入門+α」を作ってみた

ブログにカテゴリ「Java入門+α」を作ってみた。 Java入門+α カテゴリーの記事一覧 - 日々常々 カテゴリ名の通り「Javaエンジニア養成読本のJava入門を読んだ人」に対して、+αになりそうなものを分類しております。 Javaエンジニア養成読本 [現場で役立つ最新…

Optionalの取り扱いかた

JavaSE8で追加されたjava.util.Optionalにはnullとの戦いに終止符を打ってもらいたいと思っているんですが、思ってるだけだと何も起こらないので、使い方とか思ったこととかを一通り書いておきます。 Optionalのファクトリメソッド Optionalのインスタンスメ…

リストを項目ごとに集計する - Java8ばーじょん

4年前に書いたリストを項目ごとに集計するというエントリを見つけたので、なんとなく今風にStream使って書いてみた。 Collection<Output> summary(List<Input> data) { return data -> { Map<String, List<Input>> collected = data.stream() .collect(groupingBy(Input::getKey)); return colle</string,></output>…

JUnit4.12に追いつこう(周回遅れで)

JUnit4.12がでました!……2014/12/4に。なんと6ヶ月経ってる。まぁいいや。 JUnit 4.12の新機能紹介まとめ / うさぎ組(2014/8/5) JUnit 4.12から入ったTestRuleを軽く見てみる / 裏紙(2015/2/28) JUnit4.12時代のParameterized Test / mike-neckのブログ(2015…

JAX-RSのユニットテストまわり

JAX-RSのClient APIを確認した流れで、ユニットテストまわりも眺めてみる。 Jersey - 2.17 RESTEasy - 3.0.9.Final 各実装のテストサポート 軽くコード書いてみたりしつつ思ったことをば。 Jerseyさん Chapter 25. Jersey Test Framework Jerseyさんのテステ…

Seleniumを軽く動かす

導入 Seleniumに触れる機会はなんだかんだで徐々に増えてきている気がする。少なくとも3年前よりはよほどいろんなところで聞くようになったし、使われるようにもなっているはず。で、なんとなくこのブログを検索してみたら、思った以上に何も書いていなくて…

JAX-RSのClientAPIを眺めてみて

導入 もう随分前の話になるのだけれど、JAX-RS2.0にはClient APIが仕様に入っております。 それはそれとして、各実装は個別にClient APIを提供したりしておました。 個別に実装していたClientAPIには当然違いがあるわけです。で、どんな差があるんだろーと見…

ようやくJavaFX8さんを触ってみたところ

JavaFX8が出て1年たちましたが、ようやく触ってみようと思いたったので、新幹線の中でGetting Startedを叩いてました。 JavaFX: Getting Started with JavaFX なかなかいい感じにこなれてきて、動かすのにミニマムなコードはこの程度になりました。 import j…

#JavaDayTokyo 2015 に行ってきた

4/8 に行われた Java Day Tokyo 2015 に行ってきました。 20周年を迎えるJavaの記念イベントでもありました。 そんな場でなぜか話してきました。 昼イチのセッションでした。 タイムテーブル見ていただければわかると思いますが、裏番組もいいとこ……にも関わ…

変数を使用する無名クラスのコンストラクタさん

過去記事を見ながら追記みたいな感じで。 リフレクションでprivateをテストしてみる - 日々常々 内部クラス/無名内部クラスはエンクロージングインスタンスの型を要求するコンストラクタが生成されて、内部クラスのフィールドにエンクロージングインスタンス…

「はじめてのSpring Boot」の感想とか #hajiboot

大晦日に家族のひんしゅくを買いながらはじめてのSpring Bootを読んでました。 はじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS)作者: 槇俊明出版社/メーカー: 工学社発売日: 2014/11メディア: 単行本この商品を含むブログ (4…

WildFlyさんが重複したヘッダを返してきよる

JBossAS7.1.1で動いてたwarをWildFly8.2.0にデプロイしたらページ表示するときに怒られた。 ChromeおよびFirefoxにてhtmlファイルを表示しようとしたとき。 ちなみにIEやSafariはヘッダが重複してようと気にせず表示します。えらいのかおばかなのかはわから…

Javaであまりしないコーディング

Java Advent Calendar 2014 - Qiita の9日目です。9日ったら9日です。 なんか難しいエントリが多い中ですが、空気を読まずに軽めでいきます。 Javaでは色々なコードの書き方ができるけど、実際あまりやらないよなーって思うコーディングについて、やらない理…

Java EEを説明してみる #javaee

これは Java EE Advent Calendar 2014 の2日目です。Java EE をよくわかっていない私がよくもまぁアドベントカレンダーなんて登録したなーとしみじみ思いながら。 確かアドベントカレンダーに登録したのをきっかけに、なんか調べようと思ってたのですが、 思…

JavaSE8でinterfaceにstaticメソッドを持てるようになったので

Javaの古きアレなプラクティスの1つに、ユーティリティクラス*1をabstractで作成すると言うのがある。 public abstract class SomeUtil { public static String appendA(String str) { return str + "a"; } } ユーティリティメソッドappendAは、特に役に立…

リフレクションでfinalフィールド変更できるんだーといまさら

(タイトルは気にしないでください) 問題です。 元の文は変更せず、なんか足すとかしてテストを通るようにしてくださいませ。 いちもんめ @Test public void test1() throws Exception { String abc = "abc"; String def = "def"; assertThat(abc, is(def))…

「Javaエンジニア養成読本」が出るのです

Javaエンジニア養成読本 [現場で役立つ最新知識、満載!] (Software Design plus)作者: きしだなおき,のざきひろふみ,吉田真也,菊田洋一,渡辺修司,伊賀敏樹出版社/メーカー: 技術評論社発売日: 2014/11/11メディア: 大型本この商品を含むブログ (6件) を見るJ…

DiamondProblemの対応で気になったこと

去る2014/7/12は関西Javaエンジニアの会スペシャル! Java 8リリースでした。JavaSE8に関するアレコレでぎっしり、実に充実した一日でした。さて、その中でインタフェースにdefaultメソッドが定義できるようになった結果、起こるのじゃないかと危惧されたダ…

レガシーコードのはなしをしてみた #DevKan

レガシーコードと対峙する方法を考える - DevLOVE関西 | Doorkeeper 2014/03/25にあったDevLOVE関西「レガシーコードと対峙する方法を考える」で、「"レガシーコード"再考」とか釣りっぽいタイトルで話してきました。DevLOVE関西は発表とダイアログって形式…

JUnitの各要素の実行順

仕組みとか説明するのも面倒だし、ソースを出すのも手間だし、論より証拠って便利な言葉に乗っかって。こんなテストがあったとする。ありえないけど。ないけど、まぁあったとする。 @Grab('junit:junit:4.11') import org.junit.* import org.junit.rules.* …