2015-11-04 71 views
-1

我創建了一個帶有5個值的下拉列表。我想要的是如果你選擇我想使用該索引(2)投射到我的課的3de值。請看下文中我小班如何使用列表索引在java中建立一個類

public class dropDownConstructor 
{ 
    public String Code = ""; 

    public dropDownConstructor(String code) 
    { 
       Code = code; 

    } 

} 

我的附加價值,以它作爲跟隨

  myList = new ArrayList<dropDownConstructor>(); 
     myList.add(new dropDownConstructor("ABS")); 

然後我試着將它轉換爲遵循

dropDownConstructor d = (dropDownConstructor)myList; 

總之我想與投一個索引,所以我可以檢索一個特定的記錄。我知道如何在C#中做到這一點,但我在Java中掙扎。

+1

應使用'dropDownConstructor d = myList.get(someIndex);'。無需投射。 – aioobe

回答

0

如果myListArrayList<dropDownConstructor>,則不能將其轉換爲dropDownConstructor。其要素是dropDownConstructor s。

例如,你可以在它們之間迭代:

for (dropDownConstructor d : myList) { 
    // do something with d 
} 

如果一個特定dropDownConstructor在列表中,你可以搜索:

if (myList.contains(someDownConstructor)) { 

} 

所涉及的i「th元素,使用myList.get(i)

1
dropDownConstructor d = myList.get(4); 
3

這是不是在所有有效:

dropDownConstructor d = (dropDownConstructor)myList; 

您試圖施放列表dropDownConstructor這永遠不會發生。

也許,你的意思是這樣的:

dropDownConstructor d = (dropDownConstructor)myList.get(0); //assuming non-empty list. 

如果這是你想要的東西,那麼你並不需要一個演員,如果你使用通用的聲明你的列表,如:

List<dropDownConstructor> myList = new ArrayList<dropDownConstructor>(); 
myList.add(new dropDownConstructor("ABS")); 

dropDownConstructor d = myList.get(0); 

這確保您的get將返回dropDownConstructor類型的對象,因爲無論何時嘗試將任何內容添加到非dropDownConstructor類型的列表中,它都不會編譯。

+0

得到的伎倆謝謝你 –

0

公約和用法:

public class DropDown 
{ 
    public String code = ""; 

    public DropDown(String code) 
    { 
     this.code = code; 
    } 
} 

List<DropDown> myList = new ArrayList<>(); 
myList.add(new DropDown("ABS")); 

DropDown d = myList.get(42); 
for (DropDown d : myList) { ... }