私はこれを効果的に行い、一般的なメソッドを作成したいのですがそこにはNumber.valueOf()
法ませんし、0をにキャストすることはできませんT
。Javaのジェネリックと数値型が
使用例:
String value = "0.00000001";
System.out.println("Double: " + MyClass.<Double>sloppyParseNumber(value));
System.out.println("Float: " + MyClass.<Float>sloppyParseNumber(value));
double d = MyClass.sloppyParseNumber(value);
float f = MyClass.sloppyParseNumber(value);
は、Javaで可能な汎用的な方法の上に実装されていますか?はいの場合、どうですか?いいえ、良い代替アプローチは何ですか?
編集:いくつかの重複があるようですが、私はこれを正確にカバーするものは見つかりませんでした。私は、この2つの操作を可能にするいくつかのトリックを望んでいます:Number
サブクラスに文字列を解析し、Number
サブクラスの0の値を返します。
['Number'](http://docs.oracle.com/javase/6/docs/api/java/lang/Number。html)抽象クラスには、文字列を型にパースするメソッドは含まれていません。これは、解析が特定の型によって行われるためです。提案はジェネリックを使用するのではなく、 '... ToInteger'、' ... ToDouble'などの関数を作成することです。 –
私はそれを行う簡単な方法はないと思います。私は単に 'new MyClass(value).asDouble();'のようなものを使い、 'asInteger'、' asLong'、 'asFloat'、' asDouble'メソッドを手作業で実装します。 – assylias
'T.valueOf()' wouldn '静的メソッド 'Number.valueOf()'があったとしても動作しません。このようなジェネリック型は使用できません。 –