Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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 如何通过通用arrayList访问对象中的特定数据?_Java_Object_Generics_Arraylist - Fatal编程技术网

Java 如何通过通用arrayList访问对象中的特定数据?

Java 如何通过通用arrayList访问对象中的特定数据?,java,object,generics,arraylist,Java,Object,Generics,Arraylist,这里我有一个问题,关于如何通过通用列表对象访问名为Car的对象中的特定数据 -这是我的课程Car.java *我想通过DisplayCarName()方法通过generic访问Car对象的name,但发生了错误,编译在“u.get(I).getName();失败 -这是我的GenericCar.java 公共类通用汽车{ 利斯图; 通用汽车(){ u=新的ArrayList(); } 公共无效添加(T x){ u、 加(x); } //我只想显示汽车类,特别是汽车的名称,但它似乎不工作! 公共名

这里我有一个问题,关于如何通过通用列表对象访问名为Car的对象中的特定数据

-这是我的课程Car.java

*我想通过DisplayCarName()方法通过generic访问Car对象的name,但发生了错误,编译在“u.get(I).getName();失败

-这是我的GenericCar.java

公共类通用汽车{
利斯图;
通用汽车(){
u=新的ArrayList();
}
公共无效添加(T x){
u、 加(x);
}
//我只想显示汽车类,特别是汽车的名称,但它似乎不工作!
公共名称(){

for(int i=0;iT可以是
GenericCar
中的任何类,而不仅仅是Car,因此编译器不知道“getName”指的是Car中的方法

这里有一种解决方法。您可以使用类型变量的边界来告诉编译器T实际上必须是某种类型的汽车:

class GenericCar<T extends Car>
class-GenericCar

T可以是
GenericCar
中的任何类,而不仅仅是Car,因此编译器不知道“getName”指的是Car中的方法

这里有一种解决方法。您可以使用类型变量的边界来告诉编译器T实际上必须是某种类型的汽车:

class GenericCar<T extends Car>
class-GenericCar

你的类名
GenericCar
毫无意义。“generic car”有一个什么的列表?这怎么不仅仅是一个
列表呢?
?我想对generic有更多的意义,所以我为此做了测试:((你似乎把generics向后看。generic的意思是“一个数据结构(比如一个列表或一组),可以接受各种不同的数据结构(泛型)内容类型“;你似乎在寻找或模式。你的类的名称
GenericCar
毫无意义。“泛型车”有一个什么的列表?这怎么不仅仅是一个
列表
?我想对泛型有更多的了解,所以我为此做了测试:((你似乎有向后的泛型。泛型的意思。)“可以接受各种不同(通用)类型内容的数据结构(如列表或集合)”;您似乎在寻找或模式。感谢我真正需要的答案!…感谢我真正需要的答案!。。。“-@DEV-WEB,我很好奇。你不接受Joni的答案的原因是什么?提前谢谢。谢谢这个答案,我真的需要!…谢谢这个答案,我真的需要!…”@DEV-WEB,我很好奇。你不接受Joni的答案的原因是什么?提前谢谢。
public class Main() {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        GenericCar<Car>car2= new GenericCar<Car>();
        car2.Add(new Car("Toyota",20.3,"Toyota"));
        //use this ok!
        System.out.println(car2.u.get(0).getName());
        //but this is not!
        car2.DisplayCarName(); 
    } 
}
class GenericCar<T extends Car>