JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Java方法参数...是什么意思

wys521 2025-04-27 17:04:44 精选教程 2 ℃ 0 评论

private void test(String... fileNames){


......


}


String… fileNames 代表什么意思?
类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。 例如我们有一个方法叫做test(String…strings),那么你还可以写方法test(),但你不能写test(String[] strings),这样会出编译错误,系统提示出现重复的方法。


在使用的时候,对于test(String…strings),你可以直接用test()去调用,表示没有参数,也可以用去test(“aaa”),也可以用test(new String[]{“aaa”,“bbb”})。


另外如果既有test(String…strings)函数,又有test()函数,我们在调用test()时,会优先使用test()函数。只有当没有test()函数式,我们调用test(),程序才会走test(String…strings)。


所以可以看到下面这个例子,虽然是可变程度参数,...,但是也可以传入,一个参数,并且使用的时候可以用参数[0],来获取参数:


 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.net.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]来获取的参数.

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表