有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从泛型对象调用实例方法?

假设我有一个arrayList,其中包含不同类的项,所有这些项都有相同的方法:draw(); 我还有第三个类,它有一个drawItems()方法,该方法将arrayList作为参数。现在,如果这些对象作为泛型对象传递,我如何对它们调用draw()方法

下面这个不行。我明白为什么了。 Java不知道该项有这样的功能。 我怎样才能避开这件事

public void drawItems(ArrayList<T> data) 
{
    data.forEach((T item) -> {
        item.draw();
   }); 
}

更新

谢谢大家。我是这样做的:

1)创建名为Drawable的接口:

public interface Drawable {
    public void draw();
}

2)在项目类中实现接口:

public class Item implements Drawable { 

    @Override
    public void draw(GraphicsContext gc) {
        //...
    }
}

3)调整项目:

public void drawItems(ArrayList<Drawable> data) {

    data.forEach((Drawable item) -> {
        item.draw();
    });
}

共 (0) 个答案