private void test(String... fileNames){
......
}
String… fileNames 代表什么意思?
類型后面三個點(String…),是從Java 5開始,Java語言對方法參數(shù)支持一種新寫法,叫可變長度參數(shù)列表,其語法就是類型后跟…,表示此處接受得參數(shù)為0到多個Object類型得對象,或者是一個Object[]。 例如我們有一個方法叫做test(String…strings),那么你還可以寫方法test(),但你不能寫test(String[] strings),這樣會出編譯錯誤,系統(tǒng)提示出現(xiàn)重復得方法。
在使用得時候,對于test(String…strings),你可以直接用test()去調(diào)用,表示沒有參數(shù),也可以用去test(“aaa”),也可以用test(new String[]{“aaa”,“bbb”})。
另外如果既有test(String…strings)函數(shù),又有test()函數(shù),我們在調(diào)用test()時,會優(yōu)先使用test()函數(shù)。只有當沒有test()函數(shù)式,我們調(diào)用test(),程序才會走test(String…strings)。
所以可以看到下面這個例子,雖然是可變程度參數(shù),...,但是也可以傳入,一個參數(shù),并且使用得時候可以用參數(shù)[0],來獲取參數(shù):
String imgUri = img_ip + "/" +imgurl;ImageView imgView = (ImageView) findViewById(R.id.layout_mdd_frontphoto_img_face); new DownloadImageTask(imgView).execute(imgUri);
public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { ImageView bmImage; public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage; } 等Override protected void onPreExecute() { super.onPreExecute(); } 等Override protected Bitmap doInBackground(String... urls) { String urldisplay = urls[0]; Bitmap mIcon11 = null; try { InputStream in = new java感謝原創(chuàng)分享者.URL(urldisplay).openStream(); mIcon11 = BitmapFactory.decodeStream(in); } catch (Exception e) { //Log.e("Error", e.getMessage()); e.printStackTrace(); } return mIcon11; } 等Override protected void onPostExecute(Bitmap bitmap) { bmImage.setImageBitmap(bitmap); bmImage.setVisibility(View.VISIBLE); super.onPostExecute(bitmap); } }
可以看到,上面用得urls[0]來獲取得參數(shù).