Java

Java11 String の strip と Wicket の TextField 入力値の取得

Java11 になって、地味に嬉しいのが、java.lang.String の strip() メソッドでしょう。Java10 までは、Wicket の TextField<String> の入力値の取得も、 できるだけ Optional を使って書いても、結局、前後に入力された全角空白を取り除く処理を 書かないとなりませ</string>…

Java11 からの HttpClient

先月、OpenJDK 11 もリリースされて、Java9 でインキュベータとして出てた HttpClient が、 java.net.http パッケージに入った。 去年、Java9 の HttpClient を試す - Oboe吹きプログラマの黙示録 を書いたのだが、 リクエストの送信も、Java11 から、、Http…

Java祝日計算の対応

昨日、やっと2019年に追加される祝日が、政府内閣から発表、 祝日の間に挟まれて休日になる「国民の休日」が、敬老の日と秋分の日で、数年に1回しか発生しない パターンから、2019年だけのプログラム泣かせになってしまった。 ちなみに、秋分の日は…

jsTree で下のツリー階層を開く時にもAJAX通信で読み込む方法

jsTree配布デモを見ても、ツリー全体JSONをAJAXで読み込む方法はあるが、 静的に書いたJSON から下の階層を開く時や、AJAX読込み後さらに下の階層を読み込む方法が、 なかなか解らなかった。massload とかプラグインあるみたいだが、どうもできない。。。 ク…

jsTree JSON データの変換

ツリービューの情報を管理するのに、ノードの親子関係の処理を新たにコーディングするのは、どんな言語であれ 労力が必要です。 できれば、画面でツリーの描画操作の結果をそのまま管理するのが楽です。 せっかく JSON というオブジェクトで表現するのですか…

try~with~resources リソース解放されない

今更ではあるが、try~with~resources 文が便利で、ついうっかりこう書いてしまう。 File file = ....; try(PrintWriter pw = new PrintWriter(new BufferedWriter( new OutputStreamWriter( new FileOutputStream(file, file.exists()), "MS932")))){ } これ…

commons pool を AOP で処理する

Apache commons pool の利用を、Google guice AOP 使用 で書いてみました。 仕様で重要な点は、 ・POOL を定義して参照する為の Key をメソッドアノテーションで POOL から取得Object が return 値になるようにする ・このメソッドアノテーションを付けるメ…

MethodInterceptor を interface で書く

昨日書いた投稿に触発されて、AOPについて考える。 現在の yipuran-mybatis の原型を書いたのは 2010年でまだ、Java6 だった。 DB接続コネクションとトランザクションを AOP でまとめたのが yipuran-mybatis であったが、 使用する時に、IBatisDAO クラス…

commons-pool 更新されてた。

Apache の commons-pool 久々に目に留めたのですが、 2018-6-14 に、Maven セントラルリポジトリに、UPされてた。 MariaDB で発生していたバグ、 [POOL-336] GenericObjectPool's borrowObject lock if create() fails with Error - ASF JIRA など、対応され…

guice インターセプタの Matchers.annotatedWith

久々に、 Google guice でコードを書いていて、うっかりしていることに気がついた。インターセプタの Matchers.annotatedWith で、@Named に対する 指定をする時、 com.google.inject.name.Names の named メソッドを使うのだが、 インターセプタではなく、…

Jython 実行時、Cannot import site module and ...

Jython 実行時、以下のエラー ImportError: Cannot import site module and its dependencies: No module named site Determine if the following attributes are correct: * sys.path: ['C:\\Users\\xxxxx\\.m2\\repository\\org\\python\\jython\\2.7.0\\L…

Java で ini ファイルを読み込む

ini ファイル形式、”[ ]" で括ったセクションと呼ばれるカテゴリ毎の key と value を書いていくもの。 一般的には、セクションは必須だと思うが、次のルールで Java で読み込む。・行区切りのテキストで、文字コードはデフォルトで UTF-8 で読込み、UTF-8以…

キー入力プログラム

昔、Java でキー入力するのに、こんなコードを書いた。。。 public final static String getKeyin(String prompt) throws IOException{ int iCount; String rtn = ""; char cStr[] = new char[256]; InputStream inputStream=System.in; System.out.print(pr…

Java Process の実行ラッパーをラムダで

昔、java.lang.Runtime から Runtime.getRuntime().exec で Process を作ってスクリプトを実行するラッパーを書いていた。 Process p = Runtime.getRuntime().exec(this.arrange()); _ProcessStreamReader p_stderr = new _ProcessStreamReader(p.getErrorSt…

文字列のHEXダンプを作る

Apache の commons io の HEXダンプ、 org.apache.commons.io.HexDump の dump(byte[] data, long offset, OutputStream stream, int index) 結果は、左端に offset のサイズ目盛があって良いのだけれど、 以下のように少し横幅が長く、HEXの表示部と文字列…

Java10 の Optional orElseThrowメソッド

元々、Java8 以降で、Optional の get() を使うことは、Optional の目的、性質からしてあまりなかった。 Java10 になっても、get() は、Deprecated アノテーションはついてない。 https://bugs.openjdk.java.net/browse/JDK-8160606 と、OpenJDK でこの先、D…

getResource から、配下の全てのファイルの操作

絶対の例外発生しないけど例外 throwable 宣言にメソッドを使用するのにわざわざ、try~catch ハンドリングを 書きたくなくて用意した、、、Throwable~ 関数型インターフェース Throwable~ 関数型インターフェースを使う - Oboe吹きプログラマの黙示録 と…

Properties 読込みを考え直す。

Java の Properties 、properties ファイル読込みは古くから存在して過去、 設定ファイル地獄で皆、苦しんだ歴史がある。そして、convention over configuration が提唱され それでも日本の多くのシステム屋は、うまくバランスを持ってきたとは言い難い。。 …

同率順位発生でスキップさせた振り方

TV新聞紙面で見るスポーツの結果、Golf など、同率順位を並べた後の順位は、 名前 point 順位 A 100 1 B 100 1 C 80 3 で表されることが多いです。 名前 point 順位 A 100 1 B 100 1 C 80 2 と、純粋にシーケンシャルに順位が振られているのを、スポ…

Duke ちゃんに叱られる

Java 界隈で やれ、「ラムダ式が。。」 やれ、「JEP 286 Local-Variable Type Inference を称賛する人と違和感の人がどうこうの。。。」 やれ、「Java 11 になれば、jdk.incubator.http として登場した JEP 321: HTTP Client はインキュベータでなくなる??…

Pattern Match 結果の Stream

Java 9 からは、java.util.regex.Matcher に、待望の public Stream<MatchResult> results() が追加されたが、 Java8 のままで同様の Match 結果の Streamを取得するのに、 去年、以下をここに書いた oboe2uran.hatenablog.comそして、 https://github.com/yipuran/yipura</matchresult>…

Throwable~ 関数型インターフェースを使う

Java のコードを書いてると、時々 例外発生 throws 節宣言のメソッド呼び出しを 書いていると煩わしくなります。 日付書式解析のParse の Exception や、以下 など。煩わしいと思う時があります。 URL url ; // URL セット URI uri = null; try{ uri = url.t…

JSON配列書式の読込みを Gson と Python で比較

これを書いたので、では Python と比較。。。 oboe2uran.hatenablog.com 題材: [ "a" , , "c" ] というテキストの解釈Python の方、 [ "a" , "b" , "c" ] というテキストであれば、、 import jsonprint(json.loads('[ "a", "b" ,"c" ]'))は、 ['a', 'b', 'c…

JSON 配列書式のテキストデータをリストに変換するいろんな方法

発端は JSON の値が配列の場合、'[ ] ' の書式の文字列データからリストを導き出すのに、 そもそも原始的にはどうなんだろうと思ったことでした。 かなり昔、Java のバージョンも小さい 10年以上前であれば、カンマ区切りで 文字列 String の split メソッド…

Illegal reflective access の警告を抑制するメソッド

先日書いた、 oboe2uran.hatenablog.comこれの対応として、以前から作成しているフレームワークというより寄せ集めの GitHub - yipuran/yipuran-core: Java application framework の中に入れることにした。 import org.yipuran.util.ReflectIllegalaccess; …

Java で操作するUTF-8エンコードのCSVに BOMを付ける。

CSV文字コードは、「SJISで作成」と、たいていのシステム、プロジェクトは今までそうしてきたであろう。 しかし、UTF-8でも、BOM付きにすれば、Microsoft Excel でも開いて文字化けしないで済む。 昔と違ってメジャーのテキストエディタは、U…

MongoDB Java で正規表現の検索

MongoDB の正規表現の検索は、MongoDB のコマンドでは、’/' で囲んだ正規表現で書く コレクションが以下のような場合、 { "info":{ name: "y-task13md" }, "data":[] }db.getCollection('xxx').find({ "info.name" : /^y\-t.+d$/ })これを、Java で、mongodb…

guice が Java9 以降で Illegal reflective access の警告を吐く

Java9 or 10 で、Google guice 使用の実行で、 WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 to method java.lang.ClassLoader.defineClas…

Python でのカレンダー週番号

Python で年の週、を取得するのは、datetime の isocalendar 3 要素のタプル (ISO 年、ISO 週番号、ISO 曜日) が返ってきます。 import datetimetoday = datetime.datetime.today() weekNumber = today.isocalendar()[1] print(weekNumber)しかし、月曜始ま…

年の何週目は、WeekFields の weekOfWeekBasedYear で、

今更ではあるが、Java で、年初(1月1日)から何週目かを求める機会が今まであまりなくて メモ。 注意すべきは、この週の数え方で、週は、日曜が週の開始であることです。 でも、Java の DayOfWeek 列挙型は、 1 =(月曜日) ~ 7 =(日曜日) です。 LocalDate …