2010-10-13 27 views
0

我是Java新手,我在網上提到了我的問題,但並不十分滿意。我想知道Java中的「Utility Class」是什麼?Java編程中的實用程序類

任何人都可以請告訴我一個例子。

感謝, 大衛

回答

7

它通常是一類只有靜態方法(可能有一個私人的構造和標記爲抽象/最終以防止實例/子類)。只存在使其他類更易於使用 - 例如,提供一組靜態方法來處理String值,執行String本身不支持的額外操作。

實用工具類通常不會對您控制的類進行操作,否則您通常會將該行爲直接放在該類中。它們在OO方面並不十分整潔,但仍然可以非常有用。

+0

通常標示'final'而不是'abstract' – 2015-06-25 20:21:05

+0

@ JT-gilkeson:抽象的優勢在於新的XYZ(...)將*顯然*不工作。 – 2015-06-25 20:22:19

+0

摘要_obviosuly_表示該類是爲了擴展 - 使用這個關鍵字具有誤導性,這就是爲什麼Sun,Oracle和Google使用的方法是不標記類抽象。常規方法是使用'private'構造函數的'final'類。以'java.lang.Math'爲例。 – 2015-06-25 20:32:32

0

有一個實用java.util,包含像日期,時間,絃斷詞一堆東西...不知道如果這是你在說什麼。

1

爲了擴展Jon Skeet的回答,java.lang.Math,java.util.Collectionsjava.util.Arrays是這些類的典型例子。

0

它是一個包含所有靜態方法且沒有成員元素的類。

0

公共類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

添加一些解釋 – HaveNoDisplayName 2016-09-24 05:38:05