Java编程中的实用程序类
我是Java新手,我在网上提到了我的问题,但不是很满意。我想知道Java中的实用程序类是什么 谁能给我举个例子吗 谢谢,Java编程中的实用程序类,java,android,class,utility,Java,Android,Class,Utility,我是Java新手,我在网上提到了我的问题,但不是很满意。我想知道Java中的实用程序类是什么 谁能给我举个例子吗 谢谢, david它通常是一个只有静态方法的类,可能带有私有构造函数,并标记为abstract/final以防止实例化/子类化。它的存在只是为了使其他类更易于使用——例如,提供一组静态方法来处理字符串值,执行字符串本身不支持的额外操作 实用程序类通常不会对您控制的类进行操作,否则您通常会将行为直接放在该类中。它们在OO术语中不是非常整洁,但仍然非常有用。有一个实用程序包,其中包含一系
david它通常是一个只有静态方法的类,可能带有私有构造函数,并标记为abstract/final以防止实例化/子类化。它的存在只是为了使其他类更易于使用——例如,提供一组静态方法来处理字符串值,执行字符串本身不支持的额外操作
实用程序类通常不会对您控制的类进行操作,否则您通常会将行为直接放在该类中。它们在OO术语中不是非常整洁,但仍然非常有用。有一个实用程序包,其中包含一系列内容,如日期、时间、字符串标记器。。。不确定这是否就是你所说的。为了扩展Jon Skeet的答案,java.lang.Math、java.util.Collections和java.util.Array是此类类的典型示例。它是一个包含所有静态方法而没有成员元素的类。公共类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;
}
}@jt gilkeson:Abstract的优点是新的XYZ。。。抽象显然表明类是要扩展的-使用这个关键字是误导性的,这就是为什么Sun、Oracle和Google使用的方法是不将类标记为抽象的。通常的方法是使用私有构造函数的最终类。以java.lang.Math为例。@jt gilkeson:我个人对这两种方法都很满意。我已经编辑了我的答案,将最终答案作为选项。遗憾的是,Java没有与C的静态类等效的类……请添加一些解释