Java インタフェースのルール変更
インタフェースっていうのは、公開すべき必要な操作をまとめたクラスの仕様のことなんですが、これを引き継いで実装したクラスを作ります。
めんどくさいのはSE7~SE9までの仕様変更。
SE7
・インタフェースで宣言できるメソッドは抽象メソッドのみである
SE8
・デフォルトメソッドとstaticメソッドを定義できる
SE9
・privateメソッドを定義できる
インタフェースで変数宣言すると、暗黙的にpublic static final修飾子が付与されます。
抽象メソッドを宣言すると、暗黙的にpublic abstract修飾子が付与されます。
ストリームAPIの問題のコードを実際に試してみた
紫本の中の問題のコードをdokojavaさんのところで確認してみたんやが、なぜか平均の20.0ではなく、15.0が表示されてしまう。どういうことだ?ストリームにあるリテラルを合わせると60.0やから、/3ではなく/4の数字なっちゃってるんだけど、どこで4になるのか、さっぱり分からない。
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
double result = DoubleStream.of(10.0, 20.0, 30,0)
.mapToInt(x -> (int)x)
.boxed()
.collect(Collectors.averagingInt(x -> x));
System.out.println(result);
}
}
Java ストリームAPI
某参考書を読んでいるが、読者がこれから勉強する人だという想像力の欠如した人が書いている。例えばOptionalクラスの使い方について、詳しく解説されているが、そもそもどういう経緯でどういう使い方をするものなのか、最初に説明が無い。なんだかなぁ。
Javaのモジュールシステムで忘れてはいけないこと
Java11ではモジュールシステムという仕組みが採用されています。古いプログラムではモジュールを使ってないので、改修時などにモジュールシステムを組み込むやり方として、
・ボトムアップ式
・トップダウン式
の2つが考えられます。
元々のモジュールの仕組みの無いパッケージは、無名モジュールとして扱われますが、それを名前付きモジュールに変換していくのは、通常はボトムアップ移行で行われます。最も依存されている末端から名前付きモジュールにしていきます。
それが難しい場合には、トップダウン式で移行します。逆のやり方で無名モジュールを名前付きモジュールに移行させていくのですが、「名前付きモジュールから無名モジュールにはアクセスできない」(モジュール名が無いのでrequiresディレクティブにかけない)ということで、クラスパス上にあって無名モジュールとして扱われているJARがいるを、モジュールパス上に移動し、自動モジュールにします。その後、最も依存しているトップのパッケージから名前付きモジュールに移行していきます。
ううう、難しいです。が、これからのJavaプログラムではモジュールシステムをしっかり意識していかないといけないようですね。
備忘録でした。
福岡県の難読地名について
福岡県に引っ越してきて約2年。
大体、都市部にしか行ってないので、何とか郡、何とか町、何とか村はググってびっくりすることが多い。
痛ましい幼子の虐待事件で何となく珍しい苗字だなと思った「常慶」さん。仏師系何かなと思ってちょろっと検索したら、かなり珍しい苗字だそうです。
分布図で見るとほぼ、福岡県築上郡上毛町で、それ以外は島根(これは約10人なので別系統っぽい)か大阪、東京あたり。虐待死の事件の常慶夫妻は福岡県田川市なので、仏師ではなくおそらく常慶寺という寺の名前由来の上毛町系統が濃厚ですね。
築上郡、これは何となく音読みで行けるかな?…で合ってました。ちくじょうぐんです。その流れで上毛町を余所者が推測すると「じょうもうちょう」でええんかな?と思ったら、外れで「こうげまち」でした。で、築上郡のこともググりまして、築城町と上毛町の合成地名だそうです。築上郡が「ちくじょうぐん」なので、築城町も「ちくじょうまち(ちょう)」かと思いますよね。「ついきまち」でした。たしかに、九州北部では「城」の字を「き」と読むパターンが多いですよね。水城とか、佐賀の小城とか、城山なんかもありますしね。苗字でも城戸さんとかもそうかも。豊前地域は、明治から昭和にかけて合併による合成地名が結構生まれているようです。行橋(ゆくはし)市も元々築上郡だったそうです。炭鉱の有名な筑豊地域自体、そもそも筑前と豊前の間でしょうしね。すぐ近くの京都郡(みやこぐん)や苅田町(かんだまち)も知らなければ読めない難読地名です。直方(のおがた)市も無理でした。
北九州市も、元々別の街だった門司市、小倉市 、若松市、八幡市、戸畑市が合併していたりするのもあるのですが、「もじ」「こくら」「わかまつ」「やはた」「とばた」と、現在は区の名前になっていると思いますが、微妙に呼び方がややこしい。小倉はおそらく旧五市の中で一番有名だと思いますが、門司と八幡(地域によって「はちまん」と音読みしたり、「やわた」になったり)はさらっと読めないです。宗像「むなかた」市も神社好きならわかりますけどね。
福岡市内の難読地名については、また別の機会に紹介します。