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. 'hg convert'と同等のもの
- 3. F#Seq.windowedと同等のものがC#にありますか?
- 4. C#:C#でJavaからTimerTaskと同等のクラスがありますか?
- 5. JavaにC#インデクサーと同等の機能がありますか?
- 6. AsynchronousFileChannelにはtransferToと同等のものがありますか?
- 7. JavaにはC#のEnvironment.GetCommandLineArgs()と同等の機能がありますか?
- 8. ASP.NETにJava EE ServletContextと同等のものがありますか?
- 9. Cの静的変数に "this"と同等のものがありますか?
- 10. PHPにC++のstd :: vectorと同等のものがありますか?
- 11. 静的メンバーのC#に「this」と同等のものがありますか?
- 12. Angular2には$ documentと同等のものがあります
- 13. dotnet core/corefxにHtmlTextWriterと同等のクラスがありますか?
- 14. Blackberryにnotifydestroyed()と同等のものはありますか?
- 15. Booのジェネリックス - C#where句と同等のものがありますか?
- 16. Javaにscripting.dev.java.netと同様の.NETに同等のスクリプトアプローチがありますか?
- 17. EventStoreライブラリのJavaポートまたは同等のものはありますか?
- 18. C#にはC++の#pragma packと同等の機能がありますか?
- 19. C#にGroovyと同等の機能はありますか?
- 20. C#/ .NET用のJavaのSpring MVCスタイルのURLマッピングと同等のものがありますか?
- 21. ASP.NETにはVBのInputBox関数と同等のものがありますか?
- 22. PHPのArrayObjectにはin_arrayと同等のものがありますか?
- 23. OS X用のlsusbと同等のものがあります
- 24. .NETにはMac OS Xドキュメントモーダルシートと同等のものがありますか?
- 25. PHPには、|| =演算子と同等のものがありますか?
- 26. は、pythonやラッパーにdrand48()と同等のものがありますか?
- 27. RRDTool .netと同等のものがあります
- 28. 「cabal-dev ghc」と同等のものがあります
- 29. TclにはPERLとRubyのバックチックと同等のものがあります
- 30. 戻り値には$例外と同等のものがあります
... – Brendan