2010-10-13 18 views
0

Je suis nouveau à Java et j'ai référé à propos de ma question sur le net mais pas tout à fait satisfait. Je veux savoir ce que la "classe d'utilité" en Java est?Classes utilitaires en programmation Java

Quelqu'un peut-il me dire s'il vous plaît avec un exemple.

Merci, david

Répondre

7

Il est généralement une classe qui ne dispose que des méthodes statiques (peut-être avec un constructeur privé et marqué abstraite/finale pour empêcher instanciation/subclassing). Il existe uniquement pour faciliter l'utilisation d'autres classes, par exemple, en fournissant un ensemble de méthodes statiques pour travailler avec les valeurs String, en effectuant des actions supplémentaires que String lui-même ne prend pas en charge.

Les classes d'utilitaires ne fonctionnent généralement pas sur les classes sur lesquelles vous avez le contrôle, sinon vous mettriez généralement le comportement directement dans cette classe. Ils ne sont pas très soignés en termes d'OO, mais peuvent toujours être très utiles.

+0

Habituellement marqué 'final' par opposition à' abstract' –

+0

@ jt-Gilkeson: Résumé a l'avantage que les nouvelles XYZ (...) sera * évidemment * ne fonctionne pas. –

+0

Résumé _obviosuly_ indique que la classe est destinée à être étendue - l'utilisation de ce mot-clé est trompeuse, ce qui explique pourquoi l'approche utilisée par Sun, Oracle et Google est de ne pas marquer le résumé des classes. L'approche normale est la classe 'final' avec le constructeur' private'. Voir 'java.lang.Math' comme exemple. –

0

Il y a un paquet utilitaire , java.util, qui contient un tas de choses comme les dates, les heures, tokenizers string ... Je ne sais pas si c'est ce que vous parlez.

1

Pour étendre la réponse de Jon Skeet, java.lang.Math, java.util.Collections et java.util.Arrays sont des exemples typiques pour de telles classes.

0

C'est une classe avec toutes les méthodes statiques et aucun élément membre.

0

public class {Utils

public static boolean isNetworkAvailable(Context context) { 
    ConnectivityManager connectivityManager = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager 
      .getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 

public static void unlockScreenOrientation(Activity activity) { 
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
} 

public static void lockScreenOrientation(Activity activity) { 
    int currentOrientation = activity.getResources().getConfiguration().orientation; 
    if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) 
    { 
     activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 
    else 
    { 
     activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 
} 
// Get Http Post response 
@Nullable 
public static String getHttpResponse(String url, List<NameValuePair> nameValuePairs) { 
    HttpClient httpClient = new DefaultHttpClient(); 

    HttpPost httpPost = new HttpPost(url); 
    UrlEncodedFormEntity entity; 
    try { 
     entity = new UrlEncodedFormEntity(nameValuePairs); 
     httpPost.setEntity(entity); 
     HttpResponse response = httpClient.execute(httpPost); 

     HttpEntity resEntity = response.getEntity(); 
     String res = EntityUtils.toString(resEntity); 
     return res; 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

public static void CopyStream(InputStream is, OutputStream os) { 
    final int buffer_size=1024; 
    try 
    { 
     byte[] bytes=new byte[buffer_size]; 
     for(;;) 
     { 
      int count=is.read(bytes, 0, buffer_size); 
      if(count==-1) 
       break; 
      os.write(bytes, 0, count); 
     } 
    } 
    catch(Exception ex){} 
} 

public static JSONObject getJsonObjectFromXmlResponse(String xmlString) { 
    JSONObject objectJson = new JSONObject(); 
    //JSONArray arrayJson = new JSONArray(); 

    XmlPullParser parser = Xml.newPullParser(); 
    try { 
     parser.setInput(new StringReader(xmlString)); 
     int eventType = parser.getEventType(); 

     while (eventType != XmlPullParser.END_DOCUMENT) { 
      String name; 
      switch (eventType) { 
       case XmlPullParser.START_TAG: 
        name = parser.getName(); 
        if (name.equalsIgnoreCase("string")) { 
         String yourValue = parser.nextText(); 
         //arrayJson = new JSONArray(yourValue); 
         objectJson = new JSONObject(yourValue); 
        } 
        break; 
      } 
      eventType = parser.next(); 
     } 
    } catch (XmlPullParserException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return objectJson; 
} 

}

+0

ajouter quelques explications – HaveNoDisplayName