Java
Kotlinイン・アクション作者:Dmitry Jemerov,Svetlana Isakova出版社/メーカー: マイナビ出版発売日: 2017/10/31メディア: 単行本(ソフトカバー)最初に言っておきますが、『Kotlinイン・アクション』はいい本です。プログラミング言語Kotlinについて丁寧に…
先日、OCJ-PのJava11対応バージョンの日本語試験が夏前にリリースされていたことに気が付きました。これは少なくとも私の認識している限りではJava8対応バージョンの試験のリリース後の初めての新バージョンの試験であり、Java9で行われた重大な変更であるモ…
この1年くらいの間Javaを離れてC#ばかりをコーディングしていました。戻ってきて愕然としたのは例えばFunc<T>とFunc<T,U>という型を仮定した時、Java言語においてはそれらが区別のつかない型、型名の競合を引き起こす型として捉えられてしまうということです。これは</t,u></t>…
Spring BootおよびSpring Web MVCのAPIリファレンスを見ていて知ったことのメモ。例えばSpring Web MVCが提供するアノテーションの1つ、RequestMappingのvalueフィールド(Javadoc)。アノテーションが付与される型もしくはメソッド(コントローラ)が処理す…
Apache POIはJavaアプリケーションからExcelやWordのドキュメントを参照/更新するためのライブラリです。このライブラリには「Missing Cell」とか「Blank Cell」という概念があり、その意味するところはいまいち判然としないのですが、とくに「Missing Cell…
直近、例によっていろいろあってEPUB3形式ファイルのつくり方を調べていました。EPUB3はごくごく単純化して言えば拡張子が.epubで終わるZIPファイルなのですが、ディレクトリ構造や必須のファイルなどいくつかのルールがあります。こちらのページにある手順…
近ごろお手製ライブラリのJava版とC#版のあいだを行き来していて、その中で地味ーに窮屈だと感じているのが、「C#のメソッド戻り値や可視性が共変(Covariance)でない」ということです。※一応註記しておくと、ここで「戻り値の共変」と述べているのはジェネ…
すでに何度も紹介してきたJP1/AJS2ユニット定義パーサAPIですが、最近取り組んでいるC#のお勉強の「実践編」としてC#向けにポーティングしてみました。リポジトリはこちら。サンプル・コードをご覧になればお分かりのように使い方はほとんどかわりません。途…
直近C#についてお勉強していて「これは、やばい・・・」と感じたのはなんといってもyield return文です。細かいことを述べるのはやめておきます。ようするに「for文を書いて遅延評価型の反復子をつくる」というとんでもない糖衣構文です。裏側ではC#のコンパ…
今現在.NETのCLR関連の資料を読んでいて、それと比較対象するためにJVMについての資料も漁っていたのですが、そのなかで「OracleのJDK7に同梱されたHotspot VMからinternされた文字列の格納先がPermanent領域から非PermanentなHeap領域に変更になった」とい…
なんだか過去にも似たようなことをした記憶があるのですが、使い勝手の悪いDOMのAPIをラップし、代替するライブラリをつくってみました。リポジトリはこちらです。 重要なオブジェクト このライブラリの中核にあるのはQuery<R>オブジェクトです。このオブジェク</r>…
以前何度か紹介したJP1/AJS2ユニット定義パーサに、Java 8で導入されたDate-Time APIをまねた機能を追加しました。これにともない古いAPIのかなりの部分を破棄しています。Date-Time APIはその名の通り日付・時間をあつかうためのクラス/インターフェース群…
ハマった後で「ははーなるほどー」と感じた事象について。EclipseでJavaプロジェクトをつくって開発をしていたのですが、その際のプロジェクトのJavaコンパイラ設定のターゲット・バージョンは6もしくは7にしていました。一方で全体設定の「インストールされ…
例によって細かい話です。現在開発中のアプリケーションではSpring MVCのRestConrtollerを利用してクライアント側とJSON形式でデータをやり取りする構成をとっているので、内部的にはJacksonシリアライザによるJavaのオブジェクトとJSONとの相互変換が行われ…
引続きMyBatis関連でハマったはなしです。SVNリポジトリや作業コピーをJavaコードから操作するためのライブラリSVNKitにまつわるはなしです。まずは結論。 結論 SVNKitのAPIが返すjava.util.Date型オブジェクトをPostgreSQLのJDBCドライバに食べさせてはいけ…
季節感というか日付感のない記事で恐縮ですが、正月とか元旦とか関係なくMyBatisのEnumTypeHandlerでハマったはなしです。例によって結論から述べましょう。 結論 MyBatisでSQLのパラメータとしてenumを渡し、SQLのステートメント内で#{paramName.propertyNa…
開発中のアプリケーションの実装方法調査のため種々しらべた結果を元に、Spring BootとSpring Securityを組み合わせて使うサンプルをつくってみました。アプリケーションの・・・とくに認証に関する要件は以下のとおりです: アプリケーションのユーザにはロ…
さっそく、「Upgrade Java SE 7 to JavaSE 8 OCP Programmer」試験を受けてきました。結果、なんとかアップグレードに成功。参考書なしで試験をうけるのはRuby Gold試験以来かもしれません。当たり前ですが基本的にOracleの公式ページに示されたトピックスか…
Javaプログラミング言語の拡張機能を読む限りだいたいこんな感じでしょうか: 基本ルール defaultキーワードを持つメソッドは実装を持つ。持たねばならない。 defaultキーワードを持つメソッドは同一インターフェースにいくつでも持たせることができる。 宣…
前回ポストのあとOracleの公式チュートリアル"The Java Tutorials"の"Nested Classes" > "Lambda Expressions"に含まれるセクション"Target Typing"を読んでみました。ターゲット型とターゲット型付けという概念の理解のため若干の助けになるかと思います。 …
・・・というわけで、にわかにJava8の新機能についてしらべはじめたのですが、アップグレード試験「Upgrade Java SE 7 to JavaSE 8 OCP Programmer」のトピックの中に「ターゲット型付け」というワードを見かけて「なんだこれは」ということになりました。ラ…
Java SE 8系試験の日本語版が順次リリースされていますが、ピアソンVUEではこれと並行してJava 20周年記念!Oracle認定 Java資格受験 20%OFF キャンペーンを開催中です。試験体系が刷新され、Programmer資格がBronze・Silver・Goldに階層化されたことで、従…
作成中のツールで設定情報をXMLから読み取るロジックを書こうとしたところ、Java標準APIのDOM実装──org.w3c.domパッケージに含まれる各種API──がとてつもなく使い勝手のわるいものであることに気が付きました。使い勝手がわるいのはW3Cの標準に忠実にあろう…
というわけでTypesafe ConfigのGithubで公開されているREADME.mdのなかから"Using the Library"のセクションを読んでみました。ただしどうも記載内容に古い部分があるらしく現状の事実に即していない部分があったのと、意味をとることができないセンテンスが…
近ごろ(といってもすでに数年来)、ScalaやPlay Frameworkとともに存在感を増しているTypesafe社。同社が汎用のコンフィギュレーションAPIとして公開しているその名もConfigというライブラリがある(キャメルではなくローワーケースが正式名称かも知れない…
プログラミングの用語法とJava標準ライブラリのAPIに関するちょっとした話。結論を先にいえば「標準ライブラリ」についてきちんと理解しておくことは生産性の観点で重要」というそれだけの話です。以前、JP1/AJS2(日立製のスイートに含まれるジョブ実行管理…
Javaのジェネリクスの復習をしてヘンなコードを書いてみた。「やってはいけない」のカタマリみたいなコードである。 package x; class A {} class X {} // ...(1) public class Container<X extends A> { // ...(2) private X content; // ...(3) public <X> Container(X con</x></x>…
久しぶりにSpring Web MVCについて調べてみた。タイトルの通り、やりたいことは「Spring Web MVCのコントローラで任意の型のパラメータを受け取る」ということ。サンプルコードは公式リファレンスのセクション"Customizing WebDataBinder initialization"に…
ちょっと気になった記事の訳出を。Scala言語の公式サイトで公開されている2015年2月5日付けの記事です。原文は"Scala.js no longer experimental"です(2015/07/19取得)。 * * * Scala.jsはもはや試験的段階を脱した! 執筆:Sébastien Doeraene本日、私…
(2016/02/26追記 パーサ・ライブラリのリポジトリを移動しました。新しいリポジトリはこちらです。)おとといのポストで話題にしたGithub上にMavenリポジトリを構築する方法を応用して、個人用かつプロジェクト共用のMavenリポジトリをつくってみた。これは…