Unknown Region

プログラムでハマったエラーとその解決方法についての備忘録メモ

Java

【Java】外部のライブラリ利用時にはコンパイルされたバージョンに気をつけよう

先日LTSであるJava21がリリースされたJavaについて。 xtech.nikkei.com メジャーバージョンがかなり早い頻度でリリースされるようになってきた一方で、開発者にとってはこんなメッセージで苦しまされることも多いのでは。 例: エラーメッセージ java.lang.Il…

【Java】snappy-javaで生成したsnappy圧縮ファイルが壊れる事象への対処

備忘録がてら記載。 まず[snappy-java]はJavaでSnappy圧縮を容易に行うためのモジュール。 github.com この[snappy-java]を利用して生成したファイルを別システムに食わせるプログラムを作っていたのだが、受け取るプログラム側で以下のようなエラーに直面し…

Javaでコンパイルしたバージョンを知る

備忘録がてらメモ。 コンパイルしたJavaのバージョンを知りたい場合は、以下のようにするとスマート。 例: javap -v Demo.class | grep "major version" | awk '{ print $3 - 44 }' ※ Demo.classは対象のclassファイル

【Java】[java.math.BigInteger]について

備忘録がてら。 Javaの[java.math.BigInteger]はlongでも扱えない様な大きな範囲の数値を扱うことができるクラス。 例えばコンストラクタに数値が格納された文字列を渡し、計算させることもできる。 Longの最大値を文字列に変換して与え、1足してみるサンプ…

【Java】アクセス修飾子の問題でアクセスできないEnumをリフレクションで取得する

個人的メモ。 あるライブラリを弄っていて、アクセス修飾子がついていないEnumのインスタンスを引数に要求するメソッドに出くわしたのでこの方法を使った。 (そのメソッド自体はpublicなので、恐らくアクセス修飾子の考慮漏れか修正ミスだとは思う) 例: De…

【Java】Lombokの拡張を行う

Lombokを拡張する方法を探していたのだが、想定していたよりも情報量が少なかったので備忘録がてらここへ記録。 projectlombok.org 結果として、日本語、英語、中国語の技術記事をかき集めることになった。 カスタマイズはjavacのtools.jarを扱うことになる…

【Java】JacksonでのInfinityの扱いについて

自分の備忘録がてら。 前回、JavaScriptのInfinityのJSONでの扱いについて書いた。 plugout.hateblo.jp 今回はJavaのJackson(com.fasterxml.jackson)だとどうなるのかなと思って試したのを残しておく。 github.com ちなみにInfinityはdoubleやfloatで0除算を…

【Java】[java.util.Optional]における匿名クラスの扱いに気をつけよう

Javaの話。 ※ Java8及びJava15にて事象を確認。 以下のプログラム(Test1.java)はコンパイルエラーが発生する。 例: Test1.java import java.util.Optional; public class Test1 { public static void main(String... args) { Object object = Optional.of(ne…

【Java】[Generics]はしっかり設定して[RawType]を防ごう

[Generics]はしっかり設定して[RawType]を防ごう(大事なことなので2回ry) 以下のプログラムはコンパイルエラーになる。 注: Java8にて確認。 例: Hoge.java import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.stre…

【Lua × Java】LuaJのメモ

LuaJについて、軽く触ったのでメモ。 LuaJは、LuaをJava上で動かせるようにするJavaのライブラリ。 C系だと気軽に使えて重宝するLuaですが、Javaでも使えるとなるとアプリのパッチなどで活躍するかも。 www.luaj.org Javaのプロジェクト内に組み込むのが一番…

【Java】文字列のnullの連結にご注意を

Javaでのお話。 個人的に知らなかった、文字列の結合の仕様についてメモ。 ずっと以下のコードはNullPointerExceptionになると思い込んでいたのだが、どうやら違う様子。 例: Demo.java public class Demo { public static void main(String[] args) { Syste…

【Java】Auto-UnboxingでのNullPointerExceptionにご注意を

Nullに対してAuto-Unboxingが働くと、NullPointerExceptionが発生する。 なのでラッパークラスとプリミティブで比較を行う場合は、思いがけない場所で落とし穴にハマってしまう。 例:Demo1.java public class Demo1 { public static void main(String[] arg…

【Java】Optional.orElse()の落とし穴

またしょーもない所で詰まったので備忘録がてらにメモ。 以下のプログラムで[hoge]内の[fuga]には何が代入されているかという問題。 例: Sample1.java package test; import java.util.Optional; public class Sample1 { public static void main(String[] a…

【Java】StreamやOptionalにおけるfilter()でのメソッド参照で、スマートに否定の条件式を指定する

※ 2019/12/23追記 コードの表記が崩れているご指摘を頂き、該当箇所を修正致しました。 ありがとうございます。 備忘録がてらメモ。 概ね実現したいのはタイトルの通り。 Java8から登場したStreamAPIの[Stream.filter()]は、条件に一致する要素だけをフィル…

【Java】java.util.Map.containsKey(key)の落とし穴

Javaの[java.util.Map]において、あるキーにnullを代入する場合と、そのキーに何も代入しない場合では振る舞いが異なるようなケースがある その中でも最も身近な存在なのが[Map.containsKey(key)]だと思う。 プログラム例: Snippet.java public class Snippe…

【Java】親に持つGenerics(総称型)<T>のClassを取得する

備忘録がてらに、こちらへメモ。 以下の様なクラス構成に於ける「Generics(総称型)<T>」のクラスの取得方法について。 Hoge.java /** * Hogeクラス */ public class Hoge { } BaseController.java /** * ベースクラスでGenerics(総称型<T>)を持つ */ public ab</t></t>…

【Java】プリミティブのMax値とMin値にご注意を

以下のようなプログラムがあったとして、Step1、Step2、Step3でvalueとして何が出力されるかという問題。 大抵のエンジニアは、何がしたいかピンと来ると思います。 例: Demo.java public class Demo { public static void main(String... args) { long valu…

【Java】Mapへの初期代入について

JavaでMapを作成して最初に何か値を代入したい場合、通常は以下のようにすると思います。 Java8でのHashMapの生成と代入例: Map<String, String> map = new HashMap<>(); map.put("hoge", "fuga"); map.put("foo", "bar"); ただ、他の言語を触っている人だと、Mapの作成と同</string,>…

【Android】TextView.getTextSize()の落とし穴

AndroidのTextViewでsetTextSize(size)をした後にgetTextView()を実行すると値が違うという罠にハマる。 どういうことかというと、以下のコードで説明すると……。 例: (Java) TextView textView = new TextView(context); textView.setTextSize(14.0f); // 14…

【Android】ImageViewやImageButtonの画像をリセットする

タイトルの通り。 単純にどちらもsetImageBitmapにnullを渡してあげれば良いみたい。 これはJavaでもKotlinでも同様。 // imageView imageView.setImageBitmap(null) // imageButton imageButton.setImageBitmap(null)

【Android】SpannableStringBuilderでの一部文字色変更について

TextViewでテキストの一部分の文字色だけを変更しようと思い、調べていたのだけれど、TextAppearanceSpanのサンプル例ばかり出てくる。 確かにアンダーラインや文字のスタイル(Bold)などを指定する場合はstyle用の XMLを用意するのが筋かもしれないが、ただ…

連絡先: plugout777★yahoo.co.jp (クローラー対策のため★を@に変更してください)