java 板


LINE

很久以前就知道的东西 , 不过一直没有机会拿出来用 , 加上是限定 1.5 以後才有的新特性 ..... 不过既然最近会用到,拿来说嘴一下也好。:P 举例来说 static void test(String... mys){ //这三个点就是神奇的地方了 } 这就是一个最简单的宣告式 ──────────────────────────────── 这有甚麽用途呢 我们继续看下去 首先是这行 System.out.println(mys.getClass().getSimpleName()); 这可以告诉我们传进来的mys这东西是甚麽型态 哦 原来是 String[] ──────────────────────────────── 咦 既然是阵列 那为甚麽不写 String[] ?? 再卖关子就没意义了 :P 看了底下的test code自然会明白的 这是测试用范例 static void test(String... mys){ System.out.println(mys.length); System.out.println(mys[0]); System.out.println(mys[2]); System.out.println(mys[4]); } ──首先试试来当阵列用───────────────────── String[] hi=new String[]{"1","2","3"}; test(hi); 3 1 3 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at PracticeOnly.test(PracticeOnly.java:35) at PracticeOnly.main(PracticeOnly.java:23) Press any key to continue... 嗯 阵列很正常 连索引值超过的例外都很正常 ──接着拿来来恶搞一些东西─────────────────── test("hi"); //咦 搞甚麽 这样编译竟然会过!? 1 hi Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at PracticeOnly.test(PracticeOnly.java:32) at PracticeOnly.main(PracticeOnly.java:22) Press any key to continue... ──────────────────────────────── test("hi","h2","hi3","hi4"); //咦 搞错method了吧??? 4 hi hi3 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at PracticeOnly.test(PracticeOnly.java:34) at PracticeOnly.main(PracticeOnly.java:22) Press any key to continue... ──────────────────────────────── 看完上面应该能了解它是干麻的了... 简单来说,这个东西就是多重参数的输入, 最有可能看到他的就是format的部份。 比方说printf , String.format () 它可以输入String[] ,也可以分开输入很多个String 。 最後它会把他们搞成一个String[]。 但是不能先String[]後String 或者先String後Strnig[] ex. String[] s=new String[]{"hi5","hi6","hi7"}; test(s,"hi","h2","hi3","hi4"); 这样编译是不会过的 它还有一些限制是 必须是该method顺序上最後一个parameter,而且每个method只能有一个。 除了printf以外,大概就只能拿来恶搞用了吧 很少看到有人在提它,就拿出来说嘴一下 ̄▽ ̄|| 用的时候要小心一件事情就是overloading ex. 如果丢test("hi","hi2")给底下的环境, 是test(String ,String)会吃走喔... static void test(String mys,String hi){ System.out.println(mys); } static void test(String... mys){ System.out.println(mys.length); System.out.println(mys[0]); System.out.println(mys[2]); System.out.println(mys[4]); } --- 如果有人知道这有甚麽其他用途的话,倒是希望不吝分享一下...XD -- I am a person, and I am always thinking . Thinking in love , Thinking in life , Thinking in why , Thinking in worth. I can't believe any of what , I am just thinking then thinking , but worst of all , most of mine is thinking not actioning... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.147.114 ※ 编辑: TonyQ 来自: 220.139.147.114 (05/16 19:50)
1F:推 PsMonkey:这篇是要不要收啊 @_@ 好鸡肋语法... [殴飞] 05/16 21:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP