问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

java 参数中含有… 是什么意思啊

发布网友 发布时间:2022-04-30 08:25

我来回答

5个回答

热心网友 时间:2022-06-19 18:47

main方法的签名其实可以这样写:
public static void main(String... args)//方法1
它也可以运行.

并且,如果同时还存在
public static void main(String[] args)//方法2
会报已经存在重复的方法的错误.
由此可见,String... args跟String[] args对于虚拟机来说其实是一回事.
而且,在方法内,通过...传进来的参数的使用方法也跟一个数组完全无二,可以for循环,甚至可以直接转换:
public static void main(String... args)
{
String[] ss=args;
}

但对于程序员来说却还是有差别的.
1.调用
我们只能这样调用方法2:
main(new String[]{});
即,方法2只能接受String数组做参数.
而我们陌生的方法1可强了,用以下参数调用,照单全收:
main();
main(null);
main(null,null);
main(null,null,null);
......
main("a");
main("a","b");
main("a","b","c");
......
main(new String[]{});

(String...匹配String*,而null也可以是一个特殊的String)

2.参数位置
使用...的参数只能是最后一个参数.不然谁知道你调用的时候,点点点匹配到哪个实参?
public static void main(String[] args,int index)//可以
public static void main(String... args,int index)//不行!

3.重载
假设有以下两个方法:
public static void main(String... args)//方法1
public static void main(String a,String... args)//方法3
从语法上来看,这个重载完全没有错误,eclipse也没有报错.但是当调用时使用的参数个数大于这些方法中点点点参数前面的参数个数时,eclipse就会发现这个错误了.很拗口是不是?嘿嘿~还是举例来说吧.以上这两个方法,如果调用时
main();
编译器会认出这个调用的是方法1.但是如果调用时
main("");
编译器就疯了...因为一个String参数,既符合方法1的点点点,也符合方法3的String+点点点,编译器就不知道调用的是哪个方法了.
String[]参数不会有这种问题.
所以重载时要注意,如果点点点参数前面有跟它类型相同的参数...最好的方法,似乎就是换回数组形式了,要么就给方法改个名字吧.

4.遇上泛型加外包
用个实例来说
java.util.Arrays是个工具类,所有方法都是静态的,对数组的操作.里面有个方法asList(T... args),用来把类型T的数组转化成List<T>.
这是个很有用的方法,在绝大多数情况下都能如你所愿.
但是,你可以试试下面的写法
int[] is=...//自定义的数组,或者从什么地方获取来的数组
List<Integer> list=Arrays.asList(is);
很不幸,不要说执行,编译都通不过.错误的意思大概是:
不能将List<int[]>转化成List<Integer>
明白了吧?
你的设想是,把int[]中的每一个元素对应T...中的每一个点,
可编译器不这么想.因为int是原始类型,不是Object的子类.而泛型T隐含的条件是T extends Object.所以编译器不会把每一个int看做T,不会把int[]看做T点点点.虽然java已经支持自动将原始类型封包成外包类,但那是单个的情况.
而数组(不管什么类型)则是一种特殊的类型,是Object的子类,所以编译器觉得整个int[]对应一个T,你调用的方法是asList<int[]>(int[]... args)而不是你想象中的asList<Integer>(Integer...)

参考资料:http://www.javaeye.com/wiki/topic/378989

热心网友 时间:2022-06-19 18:48

表示实参个数可变。

比如:

private static int sumUp(int... values) {//表示传入sumUp的整数个数不确定,values是一个长度不确定的int数组,根据传入的参数确定长度
     int sum = 0;
 for (int i = 0; i < values.length; i++) {
  sum += values[i];
 }
 return sum;
}

使用的时候

sumUp(1, 3, 5, 7);//这里参数是5个,则values的长度是5
sumUp(1, 3, 5, 7,9);//这里参数是5个,则values的长度是5

热心网友 时间:2022-06-19 18:48

参数相当于一个动态数组,可以传递多个Pnt类型的参数用,隔开

热心网友 时间:2022-06-19 18:49

public Triangle (Pnt... vertices)
在jdk1.5以后等价于
public Triangle (Pnt[] vertices)
表示可变参数,实际接收的时候是数组
这种参数只能是参数表中最后一个参数

热心网友 时间:2022-06-19 18:50

java5的新特性

表示调用此构造器时可以传随意个数的参数,
而不像以前参数个数是写死的,
构造器要写很多才能实现传不同的参数创建类
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
如何评价动画女恶魔人 如何评价动画女恶魔人? 途观胎压监测在哪? 勤劳一生什么生肖 一生劳碌一生享最准的生肖 勤劳一生是什么生肖 勤劳一生,终会得奖,天道酬勤作栋梁指是什么生肖,词典梳理落实 温州有哪些性价比高的面馆推荐? 护士执业资格证的照片怎么审核成功 二33乐园怎么下载? vb中 DrawPnt和optSettime(0),optSettime(1)都是什么意思 未找到 C:&#92;Program Files&#92;PTC&#92;Creo 2.0&#92;Common Files&#92;M060&#92;text&#92;table.pnt是什么意思,怎么解决 笔记本按键F11ImpPnt什么意思? 螺纹中是pnt3/4什么意思啊? pnt=zone_head 什么意思 在一资料中看到,将高压水*的规格写成“1.0-11.5PNT”,请问各位是什么意思?“PNT”是指什么意思? PNQ,PNT,PNS封装有什么区别 PNT是什么意思? pnt,是什么意思呀?⊙_⊙ 没有中国银行的卡可以兑换菜鸟裹裹 菜鸟裹裹里程换旅行需要哪些条件,只要够了里程就可以领吗 没有物流单号怎么查快递 qq号码需要多久才能申请密保? 在快手上买的东西物流信息中断3天了,在物流信息那儿也找不到订单号怎么办_百度问一问 qq密保怎么申请? QQ以前申请的,现在设置密保问题怎么要申请?申请老是失败? 如何申请密保手机QQ 为什么申请QQ密保老是申请失败 QQ怎么申请密保,请教我 QQ原始密码和原始问题都忘记了 怎么申请密保 PNT山寨币什么钱包能提币 字典查蜜的所有意思 扬州碧桂园陵江府交通方便吗?应该怎么过去? 扬州碧桂园陵江府怎么样?好不好?值不值得买? 原江西省陵江府清河县是现在的哪个市县 江西陵江府朱氏巷,现今属于江西什么地方? 江西省陵江府大桥头苏氏巷是我秦氏的祖籍,有相同的吗?贵州*县。 仁寿碧桂园陵江府工地中考停工吗? 仁寿碧桂园·陵江府高考停工吗? 我是四川省会理县人,姓熊,道字辈,我们的字辈是,世学正道仁定能常。我不知到是从那里迁来的? 据老人告知我张家祖籍江西宁江府大桥头猪市巷,因湖广填四川大移民定居重庆府福州夏家河坝石鼓屋基。 平山东灵山海拔高度? 石家庄古中山陵园怎么样? 平山古中山陵园的公墓 平山有哪些旅游的景点 石家庄平山县有陵园吗,叫什么? 石家庄平山县古中山陵园怎么样? 平山古中山陵最近开放吗 蒸汽熨斗使用时温度过高,底面沾上被烫焦的杂物,如何清理 嵌入式系统是干什么的
  • 焦点

最新推荐

猜你喜欢

热门推荐