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

日々常々

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

DIコンテナのインジェクション方法の使い分けについて

DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこ…

多くの人は忘れてるCoinの一つ

Java SE 7がリリースされたのは2011年7月。 さらに、パブリックアップデートが2015年4月で終了している子です。 5年も経てば一定の評価はできるでしょう。 さて、以下のコードをコンパイルしたらどうなるか。 void method() { try { throw new Exception(); …

#jjug_ccc 2016 FallでJUnit5の話をしてきた

今年の目標を「1ヶ月に1エントリ以上のペースでブログを書く」にします。 これで9エントリになるので後3ですね。2012年12月は1ヶ月で34エントリ書いてるので、今の私と彼が同一人物なら余裕なはず。 さて、2016-12-03のJJUG CCC 2016 Fallで話させてもらいま…

JaCoCoとMavenと何か

JaCoCoとMavenでカバレッジを取ろうってやつ。 Java: 1.8.0_102 Maven: 3.3.9 JaCoCo: 0.7.6.201602180812 いろいろ地味に古いけど気にしない。 普通の手順 設定 丁寧な解説ありますけど、もっと雑なの。 pom.xmlのproject/build/pluginsに入れるだけ。 <plugin> <groupId>org</groupid></plugin>…

「Javaの新定石」でJava EEについて書きました(WEB+DB PRESS vol.94)

WEB+DB PRESS Vol.94作者: 藤原俊一郎,朽木拓,八木俊広,吉田太一郎,うらがみ,のざきひろふみ,うさみけんた,水嶋淳貴,佐々木健一,柴崎優季,前島真一,伊藤直也,遠藤雅伸,ひげぽん,海野弘成,はまちや2,竹原,WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売…

EC2のAmazonLinuxにPayaraを放流してみた

前置き EC2さん。便利ですよね。使ってますか?私はあまり使ってないです。別にほかのサービス使ってるとかでもないです。(ドヤ顔で目線を逸らしながら たまに思い出したように触っては、ある程度使えるつもりになって。 しばらくしたら使い方を綺麗さっぱ…

コンストラクタのメソッド利用で注意すること

Java入門ではさらっと以下のように書いた、コンストラクタでインスタンスメソッドを実行することについて掘り下げてみます。 コンストラクタからインスタンスメソッドを使用することは可能ですが、避けたほうが無難です。 コンストラクタの実行中はインスタ…

バージョンアップ時に互換性を損ねてしまう変更

あるいは、利用者にバージョンアップをためらわせる変更の手引き。 前置き うっかり互換性を損なってしまう変更について書いてみます。 知ってたらやらかさないし、なんてことのない事なのだけれど、 知らなかったら何が駄目なのかわかりづらいし、 原因を突…

Javadocに何を書こうか

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

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…

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

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

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

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

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

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

Java EEを説明してみる #javaee

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

リフレクションで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…

文字列連結と+演算子について整理しておく

何度か書いているけど、整理的な意味で。今後は「このエントリ参照」にするつもりで書いてみる。 文字列連結から見るシステム内で扱う型について - 日々常々 Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々 String の連結ネタの続き - …

AutoCloseableでなくてもtry-with-resourcesがしたい

The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 335 2013年にリリースされる予定のJavaSE8に入る内容を書いてます。Early Draft Review 2です。まだ変わるかもしれません。「違ったじゃん」と言われても知りま…

ラムダさんのコレクション以外の使い道

Java8のラムダさん、コレクションの操作ばかりに目が行ってたけどリソースのオートクローズとかええんちゃうん。ええんちゃうん2013-01-02 18:08:15 via YoruFukurouなるほど、確かに AutoCloseable は Functional Interface だ。 public interface AutoClos…

Lambdaの書き方をさくっと

関西ジャバで「どうでもいい」と言われた Lambda の書き方をさくっと書いておきます。 JSR-000335 Lambda Expressions for the Java Programming Language - Early Draft Review 2 「来年の事を言えば鬼が笑う」とか言いますが、もう今年なんで大丈夫です*1…

Theoriesさんの可読性をなんとか

mike、mikeなるままに…: Spockで例外のテスト ということなので、いろふさん早くSpockについてブログ書いて下さい。 mike、mikeなるままに…: Spockで例外のテスト とか言われたのでTheoriesネタで書きます。 Theoriesさん? JUnit実践入門 8章 パラメータ化…

Date and Time APIを触ってみた

Java Advent Calendar 2012 : ATND 前: Java - GuavaのSupplierで簡単キャッシュ - Qiita 次: mike、mikeなるままに…: 今更だけど、Javaの勉強方法まとめてみた #jjug JavaAdventCalendar2012の24日目。カレンダーなんで日付のです。24日とかただの日だし。1…

関ジャバの裏でコード書いてたヤツら

関連エントリ 関西Javaエンジニアの会とやら #kanjava - 日々常々 Java SE 8 で入る Lambda の構文は新しいメソッド用と言うわけでもなく - 日々常々 関ジャバでLambdaのセッションの後、適当にGistに書殴ってポストしたわけです。さくらばさんのセッション…

Java SE 8 で入る Lambda の構文は新しいメソッド用と言うわけでもなく

Java SE 8 でようやく Project Lambda が入ります。何が嬉しいかってーと内部イテレーターですね。内部イテレーターってそのオブジェクトの中でぐるんぐるんするんで、外からは「この処理をしてくださいな」と渡す必要があります。それを簡単に書けるように…

HogeれるところでひたすらHogeってみた #hogedriven

コンパイルは通る。一応。 hogeのセカイhoge駆動はこちら→ http://hogedriven.net 元ネタ Javaで、 class Hoge{ void Hoge(){ Hoge Hoge = new Hoge(); Hoge.Hoge();}} の各Hogeは何か説明させるのは、結構実力がはかれるw2012-11-21 14:18:23 via twicli

不完全なHTTPサーバとGradleさんと

Javaでシンプルすぎる不完全なHTTPサーバを書いてみた - 裏紙 不完全なHTTPサーバ:ローカルのファイルを返すようにした - 裏紙 ぼくらの@backpaper0さんがなんか楽しげなことをやっていて、テストがあったのでとりあえず動かそうと思ったのです。 gistに複…

「xs.size() == 0 と xs.isEmpty() の違い」のツイートより

今日は教育資料にブチきれて xs.size() == 0 と xs.isEmpty() の違いについて新人の子に熱く語ってしまった。教育資料と違うことを言って混乱させて申し訳ない2012-09-06 22:34:07 via atig.rb @keita44_f4 サイズ取ると、例えばxsがリストだったりすると、…

nullを安易に使わない

if (list.size()>0) { return list; } else { return null; }やめてそのまま返して空リストお願いだからnullとかにせんといて。2012-07-19 17:32:50 via Echofonツイートのままなんだけど。 メソッド呼んでリスト貰ってforでぐるぐる回す、なんてことはよく…

オーバーライドとstaticメソッド

こんなコードがあって。 public class Hoge { public static void main(String[] args) { C c = new C(); c.method(); } } class A { static void method1() { System.out.println("A method1"); } void method2() { System.out.println("A method2"); } } c…

assertEqualsよりassertThatが好きなわけ

assertEqualsよりassertThatが好きなのは、Matcherもあるけど、引数の順番に悩まないからです。英語として云々なんてどうでもいい。。。。2012-07-13 00:07:14 via YoruFukurou元ネタ*1は「xUnitよりRSpecがいいとか言ってたひとは英文ぽいのがいいとか言っ…

親クラスのstaticメソッドを素知らぬ顔で呼ぶの

class SubClass extends SuperClass { void fuga() { hoge(); } } class SuperClass { static void hoge() { // なんか } } こんなのもし書いてたら今すぐやめれ。

速習Collections

Collectionsをさっと紹介してみようと思って作ったので、晒し晒し。きっと世の中には超便利なものがあふれてるんだけど、OSSを使えなかったり、そもそもネットに繋がらない環境だったり、色々と理由があってその辺りのエコシステム*1が使えない状況はありま…

JavaとC#のコンストラクタさん

おしごとでJavaとC#を同時に使うことになってたりしまして、C#の知識不足のせいで「同じようなことをやれば良いだけ」みたいなこと言われてもぐぬぬしちゃう今日この頃です。そんな中から、コンストラクタさんのお話。参考:#51 コンストラクタと継承 « C# «…

キョウミタコード

List list = hoge(); if (list.size() >= 1) { for (Object o : list) { // hoge } } ぱっと見て isEmpty 使えよと思ったけど、そもそも if 要らない…。 Annotation annotation = clz.getAnnotation(HogeAnnotation.class); if (annotation != null) { // an…

TestNGのテストコードをJUnitで実行する

ふぐ鍋で忘年会と言う事で、例により開始5時間前くらいに集まって雑談してました。例により無駄に濃い内容でしたが、その中でも気を引いたのがうらがみさんのお話で、O/Rマッパーのそれぞれに対してテストコードを書かれてました。欲しくなったので*1鍋食い…

classファイルを触ってはいけない

(注意)触ると言ってもバイナリエディタで触るとかではありません! まずこういうクラスがあります。 // Hoge.java class Hoge { static final String foo = "foo"; static String bar = "bar"; static final Object baz = "baz"; } そして、これらのフィー…

JUnitの知識を棚卸し #JJUG

Java Advent Calendar 2011の16日目です。 前:JSFUnitでテストしよう! | Kokuzawaの日記 次:JavaEE使ってウェブアプリケーションつくろうよ - 水まんじゅう 書いてること JUnit の話です。使い始めからちょっとだけ踏み込んだ辺りですかね。ちょっとだけ…

リストを項目ごとに集計する

2015/5/3 に続きっぽいのを書きました → リストを項目ごとに集計する - Java8ばーじょん - 日々常々 データをコードごとに集計することってのは結構よくあります。例えばこんなデータを… code name value A01 hoge 100 A01 piyo 200 A02 hoge 300 A03 hoge 4…

メソッド名を日本語にする話

Javaでもメソッド名とか*1に日本語が使えます。使えない文字*2もありますけど、とりあえず置いておきます。 public void あいうえお() { // なんか書く } 流石にプロダクトコード*3で日本語メソッド名などを使う事はまずありませんが、テストコードで書くと…

やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星 #yakiniku4j のメモ

やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星 : ATND やきに駆動 秋のJava祭典スペシャル in 大阪〜こりん星 #yakiniku4j - Togetterまとめ ブログ 焼肉食べるついでにJavaの勉強してきた | 言葉をポッケに持ち歩こう @daisky 「やきに駆動 秋のJav…

JavaOne 2011報告会 at 大阪のメモ

JavaOne 2011報告会 at 大阪 : ATND JavaOne 2011報告会 at 大阪 #kanjava - Togetterまとめ 行ってきました。去年の関ジャバが思い出されます。もう1年以上経ってるんですねーとしみじみ。少しは成長出来てるだろうか…。 JavaOne 2011 サンフランシスコの最…

TreeSetにnullをaddする話

Java で TreeSet に null を add すると NullPointerException になります。*1 Airof:~ irof$ groovysh Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 Groovy Shell (1.8.2, JVM: 1.6.0_26) Type 'help' or '\h' for help. -----------------------------…

MacでJava7でGroovyConsoleのメモ

参考 Mac OSXにOpenJDKをインストール #openjdk #java7 - #侍ズム openjdk-osx-build - OpenJDK 7 and 8 Community packages for OS/X Snow, Lion and Mountain Lion - Google Project Hosting あ、そうそう。MacBookAir買ったんですよ。Twitterでは言ってま…

Java7でmainメソッド無いクラスが実行できなくなった

前書いた気がするんだけど見当たらないから書いておきますね。 PS> java -version java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode) PS> cat Main.java class Mai…

関ジャバカンファレンス2011に行って来ました

Java SE 7 Launch イベント全国キャラバン開催 | 寺田 佳央 - Yoshio Terada 関ジャバカンファレンス2011 : ATND 関ジャバカンファレンス2011 #kancon2011 - Togetterまとめ 関ジャバカンファレンス2011〜Java SE 7 Launchイベント全国キャラバン〜 発表内容…

equalsだけをオーバーライド

何と比べても同じって言うクラスAがあって。 class A { @Override public boolean equals(Object obj) { return true; } } こうすると? Collection set = new HashSet(); Collection list = new ArrayList(); set.add(new A()); set.add(new A()); list.add…

HashSetでequalsとhashCodeを使った問題

以下のコードを実行したらどうなるか。(1) Set set = new HashSet(); set.add(new Object()); set.add(new Object()); System.out.println(set.size()); (2) class A { public boolean equals(Object obj) {throw new RuntimeException();} } Set set = new …

大阪EffectiveJava読書会 第2回 やりました

大阪EffectiveJava読書会 第2回 : ATND 第2回 Effective Java 読書会 - Togetterまとめ Androg: 大阪EffectiveJava読書会 第2回に参加しました。 一回目に続いて二回目やりました。回数は増えていきますが、内容は別に引きずらずに飽きるまでやろうと思いま…