Java vector <object>类方法访问</object>

时间:2012-04-05 22:56:09

标签: java

我正在尝试使用向量来保存我的课程。这些类继承了另一个类的方法,并且也有自己的方法。我遇到的问题是使用带有对象的向量来从对象中的类调用方法。我认为它会是这样的:

public static void vSort(Vector<Object> vector) {
vector[0].generate();
}

使用generate作为我在对象中使用student类创建的自定义方法。

更好的例子

public class Method {
protected String name;

public void method() {
// some code
}
}
public class Student extends Method {
protected String last;

public void setUp() {
// some code
}
}
public class Main {
public static void main(String[] args) 
{
Vector<Object> vector = new Vector<Object>();
Student stu = new Student(); // pretend this generates something

vector.add(stu);

}

我遇到的问题是有很多像学生这样的类,它们建立在Method之上。如果我不能使用对我来说没问题但我需要访问Method类中的代码。

3 个答案:

答案 0 :(得分:3)

Java没有运算符重载。所以语法是:

vector.get(0).generate();

但是,在您的情况下,这根本不起作用,因为您有Vector<Object>,而Object没有generate方法。

[切线说明:vector事实上已被弃用;您应该使用ArrayList代替。]

答案 1 :(得分:2)

您应该使用vector.get(0)来检索您的对象。

另请注意,Object未声明generate() - 因此您需要将对象转换或指定为generic类型。

答案 2 :(得分:0)

当你有Vector<Object>时,所有检索方法都会返回Object,因此除非你明确地向下转换,否则你不能调用子类方法。您应该使用Vector<YourClass>代替,以便从向量中获取的引用属于YourClass类型,并且您不必向下转发它们。