【发布时间】:2017-11-13 06:31:57
【问题描述】:
这里的第一个问题.. 我有一个简单的程序,其中包含单独的班级(学生、教师、书籍、教室),您可以在其中按姓名、价格、房间容量等进行搜索。这些对象都存储在 Bag 类中。我还有一个单独的对象类来扩展学生、教师等类。我不确定在主要 Bag 类中的铸造哪里出了问题。任何帮助将不胜感激。
package Bag;
import java.util.ArrayList;
public class Main {
private static ArrayList<Object> collection = new ArrayList();
public static void main (String[] args) {
Student student = new Student("Sameet", 1, 4);
Faculty faculty = new Faculty("Chen", 1000.00, 1);
Classroom classRoom = new Classroom(1, 10);
Book book = new Book("Harry Potter", 10);
collection.add(student);
collection.add(faculty);
collection.add(classRoom);
collection.add(book);
}
public void insert(Object obj){
collection.add(obj);
}
public Student searchForStudent(int ID){
for (Object obj: collection){
if (obj instanceof Student && (Student)obj.getID() == ID){
return (Student)obj;
}
}
}
public Faculty searchForFaculty(String name){
for (Object obj : collection) {
if (obj instanceof Faculty && (Faculty)obj.getName() == name) {
return (Faculty)obj;
}
}
}
public Classroom searchForClass(int capacity){
for (Object obj : collection) {
if (obj instanceof Classroom && (Classroom)obj.getCapacity() == capacity) {
return (Classroom)obj;
}
}
}
public Book searchForBook(int price){
for (Object obj : collection) {
if (obj instanceof Book && (Book) obj.getPrice() == price) {
return (Book)obj;
}
}
}
}
【问题讨论】:
-
运算符优先级,加括号。但是,这也不是在 Java 中比较字符串的正确方法。
标签: java class object types casting