当我借用某些项目时,我正在处理一个项目,该项目存储我的项目,人员和操作一些人
此项目基于YouTube tutorial,适用于经典图书馆。
对不起,我会发布更多代码,因为我想知道我是如何做到这一点的。我个人认为我如何获得 ItemClass 或 PersonClass 的实例存在问题。或者围绕 BorrowClass 继承的东西。
现在 BorrowClass 中的前两个方法工作正常,创建项和人并添加到列表中,但是当我尝试创建新的时包含项或人的 BorrowClass 会抛出 nullPointer ,但通过调试我能看到在variables中借用了,一切似乎都不为空或者红色方块是否意味着问题?
我创建 ItemClass
public class ItemClass implements Serializable {
private static final long serialVersionUID = 1L;
private int isbn;
private String title, author;
private String otherInfo;
public ItemClass(String title,String otherInfo, String author,int isbn) {
this.isbn = isbn;
this.title = title;
this.author = author;
this.otherInfo = otherInfo;
}
然后 PersonClass
public class PersonClass implements Serializable {
private static final long serialVersionUID = 1L;
private int telephone;
private String name, surename, email;
public PersonClass(String name,String surename, int telephone,String email) {
this.name = name;
this.surename = surename;
this.telephone = telephone;
this.email = email;
}
然后 BorrowCLass
public class BorrowClass implements Serializable {
private static final long serialVersionUID = 1L;
private ItemClass item;
private PersonClass person;
private Date borrowDate;
private Date expireDate;
public BorrowClass(ItemClass item, PersonClass person, Date borrowDate,
Date expireDate) {
this.item = item;
this.person = person;
this.borrowDate = borrowDate;
this.expireDate = expireDate;
}
现在我在图书馆类
中处理了以上所有内容public class Library extends Object implements Serializable {
private static final long serialVersionUID = 1L;
private List<ItemClass> listOfItems;
private List<PersonClass> listOfPersons;
private List<BorrowClass> listOfBorrowed;
public Library() {
listOfItems = new ArrayList<ItemClass>();
listOfPersons = new ArrayList<PersonClass>();
listOfBorrowed = new ArrayList<BorrowClass>();
}
public void addItemtoItemsCollection(ItemClass item) {
listOfItems.add(item);
}
public void addPersontoPersonCollection(PersonClass person) {
listOfPersons.add(person);
}
public void addBorrow(BorrowClass borrowed) {
listOfBorrowed.add(borrowed);
}
如果有人可以解释
的含义,也会很好private static final long serialVersionUID = 1L;
因为在视频中我没有得到它而且我想知道。
感谢您的回答。
答案 0 :(得分:0)
关于serialVersionUID
:
所以...基本上在某些时候你可能想要serialize
你的对象并将它们保存在某个地方(比如在文件或数据库中),这样你以后就可以deserialize
。现在,serialVersionUID
字段用于了解,如果您使用的是与创建此对象时序列化使用的相同的类定义。
所以......每当你对serializable
的某个类进行更改时,都会将serialVersionUID
增加1,以便旧类版本的任何seiralized
对象都没有错误{ {1}}使用当前的班级版本。
答案 1 :(得分:0)
女士们,先生们,我谦卑地为自己的愚蠢道歉。我有来自文件的功能加载,我正在加载 OLD 库文件,其中列表借用仍然不存在,没有要添加的列表。在这里,我有nullPointer。我被困在这一段时间但只是因为我的愚蠢:)谢谢大家的帮助。您可以关闭主题