2012-12-21 11 views
9

सी # में मैं Convert वर्ग का उपयोग कर पसंद आया। यह एक प्रकार से दूसरे में आसान और सुसंगत रूपांतरित हो गया। मैं जावा में एक समान कक्षा लिखने के बारे में सोच रहा था, लेकिन मैं पहिया को फिर से शुरू नहीं करना चाहता। तो मैंने यह देखने के लिए चारों ओर गुगल किया कि क्या ऐसी चीज मौजूद है और अच्छे नतीजे नहीं मिल रहे हैं। तो किसी को भी कुछ के बारे में पता इस तरह है या तो मानक libs, गूगल अमरूद, या Apache Commons में?जावा में सी # में कनवर्ट वर्ग के एक बराबर है?

+0

मैं सिर्फ इतना है कि इस तरह की एक आवरण वर्ग बनाने टिप्पणी करने के लिए जा रहा हूँ जावा के लिए पूरी तरह से व्यर्थ है ... – Brendan

उत्तर

7

जावा में इस तरह कोई वर्ग नहीं है।

जावा में स्वीकार किए जाते हैं अभ्यास सिर्फ एक दूसरे से पुरातन कास्ट करने के लिए है। यह एक प्रकार से दूसरे में परिवर्तित करने का एक आसान और सुसंगत तरीका है।

float bar = 4.0f; 
int foo = (int) bar; 
+2

और प्राइमेटिव्स को तारों में बदलने के लिए, यह 'Integer.parseInt',' Float.parseFloat' है, और बहुत आगे है। – Vulcan

+0

हाँ। मैं इन तरीकों से अवगत हूं। सी # उन्हें करने के लिए है। सी # कन्वर्ट क्लास एक सुविधा वर्ग है। यह पूरी तरह से अनावश्यक है, लेकिन यह कोड क्लीनर बनाता है और टाइप करने के लिए तेज़ बनाता है। –

+0

जो लोग किसी विशेष प्रतिमान के लिए आदत रखते हैं वे हमेशा उन सम्मेलनों को याद करेंगे जब वे किसी और चीज में माइग्रेट करेंगे। हकीकत में, जावा में बुनियादी मूल्य प्रकार के बीच कास्टिंग के लिए एक सुविधा वर्ग अनावश्यक (और संभवतः करना मुश्किल होता है)। जब मैं विजुअल बेसिक 6 से आया, तो मुझे चुनिंदा (i, args ...) फ़ंक्शन याद आया, इसलिए मैं अभी भी इस दिन में एक लिखता हूं (यह एक लाइनर है) लेकिन यह वास्तव में आवश्यक नहीं है (और चूंकि सभी तर्क होना चाहिए मूल्यांकन किया गया एक प्रदर्शन व्यापार है)। – scottb

0

आप अपनी खुद की Convert वर्ग बना सकते हैं आसानी से

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)); 
    } 
} 
संबंधित मुद्दे