Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中使用列表索引强制转换类_Java - Fatal编程技术网

如何在java中使用列表索引强制转换类

如何在java中使用列表索引强制转换类,java,Java,我创建了一个包含5个值的下拉列表。我想要的是,如果你选择3de值,我想使用该索引(2)将其转换为我的类。看下面我的小班 public class dropDownConstructor { public String Code = ""; public dropDownConstructor(String code) { Code = code; } } 我为它添加了如下值 myList = new

我创建了一个包含5个值的下拉列表。我想要的是,如果你选择3de值,我想使用该索引(2)将其转换为我的类。看下面我的小班

   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语言中遇到了困难。

如果
myList
ArrayList
,则不能将其转换为
dropDownConstructor
。它的元素是
dropDownConstructor
s

例如,您可以对其进行迭代:

for (dropDownConstructor d : myList) {
    // do something with d
}
您可以搜索列表中是否有特定的
dropDownConstructor

if (myList.contains(someDownConstructor)) {

}

对于
i
的第四个元素,使用
myList.get(i)
这根本无效:

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);
List myList=new ArrayList();
添加(新的下拉构造函数(“ABS”);
dropDownConstructor d=myList.get(0);
这保证了您的
get
将返回类型为
dropDownConstructor
的对象,因为每当您尝试向列表中添加任何不是类型为
dropDownConstructor
的对象时,它都不会编译。

约定和用法:

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) { ... }
公共类下拉列表
{
公共字符串代码=”;
公共下拉列表(字符串代码)
{
this.code=代码;
}
}
List myList=new ArrayList();
myList.add(新下拉列表(“ABS”);
DropDown d=myList.get(42);
对于(下拉列表d:myList){…}

您应该使用
dropDownConstructor d=myList.get(someIndex)。不需要投。
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) { ... }