Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Class_Inheritance_Casting - Fatal编程技术网

Java 如何从包含子类的父类数组强制转换回父类

Java 如何从包含子类的父类数组强制转换回父类,java,list,class,inheritance,casting,Java,List,Class,Inheritance,Casting,我有一个Parent列表,其中包含Parent的子类,例如Child1或Child2。我现在想从那里得到一个元素 public <T> T getChild(Class<T> tClass) { for(Parent i: parents) { if(i.getClass==tClass) { return(T)i; } } return(null); } publi

我有一个
Parent
列表,其中包含
Parent
的子类,例如
Child1
Child2
。我现在想从那里得到一个元素

public <T> T getChild(Class<T> tClass)
{
    for(Parent i: parents)
    {
        if(i.getClass==tClass)
        {
            return(T)i;
        }
    }
    return(null);
}
public T getChild(类tClass)
{
适用于(家长i:家长)
{
if(i.getClass==tClass)
{
返回(T)i;
}
}
返回(空);
}

但是,由于某些原因,即使我转到
parents.add(new Child1())时,它也会返回null。如果您有一个解决方案,那将非常受欢迎。

这段代码适合我,尽管我不确定它是否是您要寻找的

import java.util.List;
公共类父类{

私有静态列表不应该是if(i.getClass()==tClass.getClass())?不,这会出错。更可能是
if(i.getClass()==tClass)
…但是发布的代码甚至不应该编译。如果不使用
c2.getClass(),我怎么能做到这一点
。我想能够做
Child2.class
@BossCode
Child2.class
c2.getClass()
将为您提供相同的
。实际上不,这确实有效,我只是实现了错误的代码。很抱歉提出了一个愚蠢的问题。注意:1)
等于
是不需要的,
=
与类一起工作;2)避免未选中强制转换
返回childClass.cast(I);