ben etkili yapar genel bir yöntem oluşturmak istiyorum hiçbir Number.valueOf()
yöntemidir ve 0 döküm edilemez T
.Java jenerikler ve sayısal tipleri
Örnek kullanım:
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 ile olası jenerik yöntemle yukarıda uyguluyor? Evet ise nasıl? Eğer hayır ise, iyi bir alternatif yaklaşım nedir?
Düzenleme: birkaç olası çiftleri var gibi görünüyor, ama tam olarak bu kapakları birini bulamadık. Bu iki işlemi yapabilmem için çekmesi gereken bir hile olduğunu umuyorum: Number
alt sınıfına dize ayrıştırma ve Number
alt sınıfı için 0 değerini döndür.
['Number'] (http://docs.oracle.com/javase/6/docs/api/java/lang/Number.html) özet sınıfı, ayrıştırma belirli bir tür tarafından yapıldığı için, dizeyi bir türe ayrıştırmak için herhangi bir yöntem içermez. Bir öneri jenerik kullanmamak, ama 'ToInteger',' ... ToDouble' vb. Gibi fonksiyonlar yaratmaktır. –
Bunu yapmanın kolay bir yolu olduğunu sanmıyorum. Yeni MyClass (value) .asDouble(); gibi bir şeyi kullanırım ve "asInteger", "asLong", "asFloat", "asDouble" vb. Yöntemlerini elle uygulardım. – assylias
'T.valueOf() 'wouldn' Statik bir yöntem olsa bile çalışın 'Number.valueOf() '; Bunun gibi jenerik türleri kullanamazsınız. –