我正在尝试使用向量来保存我的课程。这些类继承了另一个类的方法,并且也有自己的方法。我遇到的问题是使用带有对象的向量来从对象中的类调用方法。我认为它会是这样的:
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类中的代码。
答案 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
类型,并且您不必向下转发它们。