サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
sofksoak.hatenadiary.jp
java の interface で定数のみの定義を行っているものがありますが 以下の理由で、それは良くありません。 それは、public static final の field だけで構成されていて、method を持っていません。 定数をクラス又はインスタンスで使用するということは、実装の詳細です。 そして定数を、実装クラスから、無意味に外部公開してしまうことになります。他のクラスからは実装クラスに属する定数のように見えてしまいます。 また、外部公開すると互換性を保証し続けなければならなくなり、不要になってもインターフェースを除外することができません。 それから、本来はsuper class だけの参照にとどめておきたかった定数が、sub class まで参照できてしまいます。つまり、このクラスをextends したすべての sub class で名前空間が汚染されてしまいます。(名
C言語の signed とunsigned の違いではまりやすいパターン (C言語プログラミングでの落とし穴) 基本的なことなのですが、 はまると?になってしまうので注意です。 char data; data = 0xFF; if (data == 0xFF) { // int型にキャストされるので、dataは-1、0xFFは255になる。 } else { // この場合はこちらの条件になる。 // int型では0xFFは、10進数で255 dataに代入された0xFFは、-1 になる。 } unsigned char data2; data2 = 0xFF; if (data2 == 0xFF) { // この場合はこちらの条件になる。 // int型にキャストされるので、data2は255、0xFFも255になる。 } else { // 0xFFは、10進数で255 data2に代
基本的なことでも慣れないうちは、どう書けばよいかと、ググる日々.. scala でプログラミングし出して慣れない scala で java のアレはどう書くのか? と簡単な処理でも勝手が違うので少し戸惑った事。 byte バッファ java だと byte[] buffer = new byte[size]; scala で 配列は Array[T] になるので byte 配列は val buffer = new Array[Byte](size) DataInputStream の readFully メソッドに java と同じ byteバッファとして指定可能。 import java.io.{File,FileInputStream,DataInputStream} ..snip.. val file = new File(filename) val in = new DataInp
FindBugs の @NonNull アノテーションで引数や戻り値が null でないことを明示すると、可読性もよくなるし、間違って null の引数を指定したり、null を返すコードを書くと、FindBugs の指摘が入るので、不要な null チェックの冗長なコードが減少する。 import edu.umd.cs.findbugs.annotations.NonNull; .. @NonNull public String get(@NonNull String key) { .. return .. } .. 逆に、どうしても null の引数指定や null の戻り値が発生する場合は @CheckForNull アノテーションを付けて null チェックコードを書くように明示することができる。こちらは null チェックがないと FindBugs が指摘してくれる。 impor
このページを最初にブックマークしてみませんか?
『sofksoak.hatenadiary.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く