C#ではConvertクラスの使用が好きでした。あるタイプから別のタイプへの変換を簡単かつ一貫性のあるものにしました。私はJavaで同様のクラスを書くことを考えていましたが、私はその輪を再構築したくありません。だから私はそのようなものが存在し、良い結果を得ていないかどうかを調べるために周りを探索した。だから、誰かが標準のlibs、グーグル、またはapacheのコモンズのいずれかのような何かを認識している?Javaには、C#のConvertクラスと同等のものがありますか?
答えて
javaのようなクラスはありません。
javaで受け入れられている方法は、プリミティブをお互いにキャストすることです。これは、あるタイプから別のタイプへの簡単かつ一貫した変換方法です。
float bar = 4.0f;
int foo = (int) bar;
プリミティブを文字列に変換するには、 'Integer.parseInt'、' Float.parseFloat'などがあります。 – Vulcan
うん。私はこれらの方法を知っています。 C#にはそれらがあります。 C#Convertクラスは便利なクラスです。まったく必要ありませんが、コードはより洗練され、速くタイプアウトされます。 –
特定のパラダイムに慣れている人は、他のものに移行するときに常にその慣習を逃すでしょう。実際には、Javaで基本的な値の型間でキャストするための便利なクラスは不要です(おそらく難読化する可能性があります)。私はVisual Basic 6からやってきたとき、Choose(i、args ...)関数を見逃してしまったので、まだ1日に1つ書いています(これは1つのライナーですが、実際には必要ありません)。パフォーマンスのトレードオフがあると評価)。 – scottb
あなたがあなた自身の変換クラスを作成することができ、容易
package com.abc;
public class Convert {
public static int ToInt(Object obj) {
try{
return Integer.parseInt(obj.toString());
}
catch(Exception ex){
return 0;
}
}
public static float ToFloat(Object obj) {
try{
return Float.parseFloat(obj.toString());
}
catch(Exception ex){
return 0f;
}
}
public static boolean ToBoolean(Object obj){
try{
if(obj.getClass() == Boolean.class)
return (Boolean)obj;
return Boolean.parseBoolean(obj.toString());
}
catch(Exception ex){
return false;
}
}
}
上記のクラス通過、次のユニットテスト:私はちょうどこのようなラッパークラスを作成することをコメントするつもりだ
package com.abc;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class ConvertTest {
@Test
public void ConvertToInt() {
assertEquals(1, Convert.ToInt(1));
assertEquals(0, Convert.ToInt("Suresh"));
assertEquals(0, Convert.ToInt(null));
assertEquals(0, Convert.ToInt(true));
assertEquals(0, Convert.ToInt(3.3f));
}
@SuppressWarnings("deprecation")
@Test
public void ConvertToFloat() {
assertEquals(1f, Convert.ToFloat(1), 0.001f);
assertEquals(0f, Convert.ToFloat("Suresh"), 0.001f);
assertEquals(0f, Convert.ToFloat(null), 0.001f);
assertEquals(0f, Convert.ToFloat(true), 0.001f);
assertEquals(3.3f, Convert.ToFloat(3.3f), 0.001f);
}
@Test
public void ConvertToBoolean() {
assertEquals(false, Convert.ToBoolean(1));
assertEquals(false, Convert.ToBoolean("Suresh"));
assertEquals(false, Convert.ToBoolean(null));
assertEquals(true, Convert.ToBoolean(true));
assertEquals(false, Convert.ToBoolean(false));
assertEquals(false, Convert.ToBoolean(3.3f));
}
}
- 1. C#:C#のJavaからTimerTaskと同等のクラスがありますか?
- 2. C#:C#でJavaからTimerTaskと同等のクラスがありますか?
- 3. F#Seq.windowedと同等のものがC#にありますか?
- 4. 'hg convert'と同等のもの
- 5. JavaにC#インデクサーと同等の機能がありますか?
- 6. AsynchronousFileChannelにはtransferToと同等のものがありますか?
- 7. JavaにはC#のEnvironment.GetCommandLineArgs()と同等の機能がありますか?
- 8. RubyにPHPの$$と同等のものがありますか?
- 9. 静的メンバーのC#に「this」と同等のものがありますか?
- 10. Cの静的変数に "this"と同等のものがありますか?
- 11. PHPにC++のstd :: vectorと同等のものがありますか?
- 12. ASP.NETにJava EE ServletContextと同等のものがありますか?
- 13. バックグラウンドページに `run_at:start`と同等のものがありますか?
- 14. Angular2には$ documentと同等のものがあります
- 15. swift 3にC++ shared_ptrと同等のものがありますか?
- 16. pythonにchgrp -Rと同等のものはありますか?
- 17. PostgreSQLにORACLE DBMS_SQLと同等のものはありますか?
- 18. NativescriptにHTMLアンカータグと同等のものはありますか?
- 19. Blackberryにnotifydestroyed()と同等のものはありますか?
- 20. xamarin Iosにrecyclerviewと同等のものはありますか?
- 21. dotnet core/corefxにHtmlTextWriterと同等のクラスがありますか?
- 22. Booのジェネリックス - C#where句と同等のものがありますか?
- 23. ジュリアのC++スタイルのstd :: mapと同等のものはありますか
- 24. .equalTo(object)と同等のものがありますか?
- 25. Grails + GORM:Hibernateの@Generatedと同等のものはありますか?
- 26. C#/ UWPにUIImageRenderingModeAlwaysTemplateと同等の機能がありますか?
- 27. swift/objective cにgetServingUrl()と同等のメソッドがありますか?
- 28. oracle SEGMENT CREATIONと同等のものがgarroachdbにあります
- 29. EventStoreライブラリのJavaポートまたは同等のものはありますか?
- 30. C#にはC++の#pragma packと同等の機能がありますか?
... – Brendan