2015-11-04 67 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) { ... }