全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1489
推到 Plurk!
推到 Facebook!

關於建立匿名陣列

尚未結案
warke
一般會員


發表:19
回覆:32
積分:10
註冊:2004-09-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-16 14:33:24 IP:218.170.xxx.xxx 未訂閱
Button[] CardCommand = new Button[] {"read"," 1","-1"," 10","-10","first","end"};
上面這一行是小弟的程式碼。 小弟試圖宣告一個CardCommand的Button陣列,並利用匿名陣列來宣告裡面的文字內容。這時候發生了下面的錯誤。
D:\Tomcat 4.1\webapps\JavaTest\applet>javac test2.java
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                    ^
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                           ^
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                                ^
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                                     ^
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                                           ^
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                                                 ^
test2.java:43: incompatible types
found   : java.lang.String
required: java.awt.Button
Button[] CardCommand = new Button[]{"read"," 1","-1"," 10","-10","first","end"};
                                                                         ^
7 errors    D:\Tomcat 4.1\webapps\JavaTest\applet>
請問一下小弟是哪邊犯錯呢? 發表人 - warke 於 2004/11/16 14:42:20
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-16 14:48:01 IP:61.56.xxx.xxx 未訂閱
JButton 雖有以string建構的方式,就不代表有如C++的隱性形態轉換機制 (其他類別.我想在java也是如此吧) 所以你的宣告要如下.
JButton btns[5];<---事實上是如同C  中的指標陣列
...
..
for(int i=0;i<5;i  ){
   btns[i]=new JButton("button" i); <---傳回Jbutton物件指標
}
在java的術語中,參考是C 的指標,而不是C 中的"參考"一辭
warke
一般會員


發表:19
回覆:32
積分:10
註冊:2004-09-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-16 17:08:40 IP:218.170.xxx.xxx 未訂閱
在小弟的印象中,初始化陣列的時候有兩種方式: 一個是neoart大大所說的:
Button[] btns = new Button[5];  //建立含有6個JButton參考變數的陣列。
for(int i=0;i<5;i  ){
   btns[i]=new Button("button" i);  //將新的Button指到i的索引位址。
}
另一個是建立匿名陣列:
int[] btns = new int[5];
btns = new int[]{1,2,3,4,5};
只是問題是,發生一件很奇怪的事情是說 當我用int來做匿名矩陣宣告時就不會發生錯誤。但是用Button時就會出錯>"<~~。真是機車的問題阿.... 另外,小弟發現到假設如果只是用int[]來做匿名矩陣宣告就不會發生錯誤。比較如下: 程式段一:
int[] btns = new int[5];
btns = new int[]{1,2,3,4,5};
可以 程式段二:
int[] btns;
btns = new int[]{1,2,3,4,5};
可以 但是若是用Button[]時就不行了說。 程式段三:
Button[] btns = new Button[5];  //建立含有6個JButton參考變數的陣列。
for(int i=0;i<5;i  ){
   btns[i]=new Button("button" i);  //將新的Button指到i的索引位址。
}
可以 程式段四:
Button[] btns;  //建立含有6個JButton參考變數的陣列。
for(int i=0;i<5;i  ){
   btns[i]=new Button("button" i);  //將新的Button指到i的索引位址。
}
不可以 請問一下為什麼會這樣呢?
系統時間:2024-05-09 21:07:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!