Java
本日、日本Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しな…
オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジ…
以前にJavaの配列関連で調べたことがあったのですが、Javaの総称型は型消去によって直感的でない挙動をする場合があります。 Java言語のClassクラスが持つちょっと不思議な性質について - 達人プログラマーを目指して Java5の型システムを理解するにはリフレ…
長年Javaを書いてきた人間としてはちょっと情けないことに、先日、会社で自分の書いたコードが原因でちょっとしたバグを出してしまいました。きちんとテストファーストで単体試験は書いていたのですがテストが不十分でしたね。 バグの原因は、Fileクラスの仕…
正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の…
ご存知のとおり、かなり以前からJavaプラットフォームはJava SEとJava EEとに分かれています。Java EEはJava SEを含んだ拡張APIを含み、エンタープライズ開発向けのプラットフォームということで一般的にはなんとなく理解されていますが、よくよく調べてみる…
昨晩遅く、id:backpaper0さんの以下のツイートが目にとまりました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = i…
以前に、Java5の型システムを理解するにはリフレクションAPIを使ってみるのが最短の近道になる - 達人プログラマーを目指してで、Java5からリフレクションAPIで総称型を扱うために導入されたTypeインターフェースについて説明しました。復習しておくと、 Cla…
前回のエントリーJava5の型システムを理解するにはリフレクションAPIを使ってみるのが最短の近道になる - 達人プログラマーを目指してで、Javaの型システムが総称型の導入によりJava5から大きく拡張されたということを説明しました。ポイントは 総称型により…
Java5における総称型(generics)の導入に伴い、Javaの型システムは以前と比べて高機能になった反面、理解するためのハードルが高くなっています。もちろん、Javaの型についてきちんと理解するためには言語仕様を勉強すればよいのですが、手っ取り早く理解す…
Java5以降では総称型(generics)がJava言語に導入されています。総称型自体は、最近の静的な型付けのプログラミング言語で珍しいことではなく、現在の最新版では.NETのC#やVisual Basicにも導入されています。一般的には総称型をサポートするクラスライブラ…
以前、業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指してにて、Java言語の配列はListなど他のコレクションとの不統一が顕著であるという点を説明しました。Java言語の配列は 要素に[ ]演算子を使って簡単に…
Java: The Good Partsの本のタイトルに触発されて、逆にJava言語の使いにくい部分をいくつかピックアップしてみました。Java EEなどの業務系のアプリケーションプログラマーの視点で書いていますので、別の立場ではここで指摘している事項が必ずしもBad Part…
インフラ層のチェック例外はやはりJavaのBad Partだと思う 先日のJava言語のチェック例外は本当にGood Partなのか? - 達人プログラマーを目指してで、 インフラ層のフレームワークなどでは実行時例外が適切 ということを書いたのですが、この点についてもう…
デブサミ2011会場のオライリーのブースで目に入ったため、以下の本を購入しました。Java: The Good Parts作者: Jim Waldo,矢野勉,笹井崇司出版社/メーカー: オライリージャパン発売日: 2011/02/24メディア: 大型本購入: 3人 クリック: 148回この商品を含むブ…
Java言語でメソッド中で内部クラスを作る時、そのメソッドのパラメーターやローカル変数に内部クラスのメソッド中からアクセスできます。しかし、この場合にはこれらの変数にfinalを付けないとコンパイルエラーになってしまいます。 public void test(int pa…
Generics(総称型)のプログラミングはJava言語(バージョン5以降)で最も習得が困難な文法*1の一つです。私自身、時々どうやって文法エラーを修正すべきか悩むこともあるくらいで、実際かなり複雑です。Genericsの導入は賛否両論なので、実際Javaに導入した…
今日他の人が書いたJavaのプログラムを読んでいたら、正規表現でパターンにマッチした領域をListの要素で置換するという処理がありました。具体的に言うと、 ["要素1", "要素2"]のようなListが与えられていた場合、"test #{0} #{1} test"のようなテンプレー…