float
バイナリ データを受け取るプログラムがあり、その見出しint
に応じて、、、、、、などを表しdouble
ます。char
string
プログラムでは、ByteBuffer
クラスを利用しbyte[]
てそれを取得し、getFloat()
orgetInt()
などのメソッドを使用して内容を使用可能な形式に抽出します。
すべての可能性に対してスイッチまたは if/else ステートメントを使用せずに、 との間で効率getFloat()
的に値を渡したいと思います。getInt()
System.out.println()
println()
などを受け入れることができるので、タイプに関係なくデータを詰め込みFloat
、値を関数に返すInt
ことができるJavaオブジェクトがあればいいのにと思います。getXXX()
println()
唯一の問題は、これを行う Java クラスを知らないことと、Google 検索が乾燥していることです。クラス知ってる人いますか?
私はそれを書くことができると思いますが、最初はJava認定の方法ですべてをやろうとしています.
編集:これが私の現在のコードの例です:
ByteBuffer buffer = ByteBuffer.wrap(dat.message);
if (dat.dataType.equalsIgnoreCase("float")) {
System.out.println("Message: " + buffer.getFloat());
} else if (dat.dataType.equalsIgnoreCase("int")) {
System.out.println("Message: " + buffer.getInt());
} else if (dat.dataType.equalsIgnoreCase("char")) {
System.out.println("Message: " + buffer.getChar());
} else if (dat.dataType.equalsIgnoreCase("long")) {
System.out.println("Message: " + buffer.getLong());
} else if (dat.dataType.equalsIgnoreCase("boolean")) {
System.out.println("Message: " + buffer.get());
} else if (dat.dataType.equalsIgnoreCase("string")) {
String str = new String(dat.message);
System.out.println("Message: " + str);
}
私にはあまりにも醜いので、Java にはもっと良い方法があるはずです。