我想为像这样的库调用一个方法:
%nameofbookvar%.islend();
但是用户应该将nameofbookvar分配给他想要的书。所以我希望java知道nameofbookvar是一个变量,而不是对象的名称。 我怎么能这样做?
谢谢!:)
答案 0 :(得分:2)
这对Java来说真的很奇怪,因为你通常不会创建像%nameofbookvar%
这样的变量而没有...定义它的名字,对吗?
对于简单的名称/值对,您可以使用HashMap
:
Map<String, Book> library = new HashMap<String, Book>();
library.put("Frankenstein", new Book("Frankenstein"));
// ....
Book userSearchedBook = library.get("Frankenstein");
userSearchedBook.isLend();
当然,您需要Book
课程:
public class Book {
private final String title;
private boolean lend;
public Book(String title) {
this.title = title;
}
//...
public boolean isLend() {
return isLend;
}
}
答案 1 :(得分:1)
您可以将图书馆中的所有图书存储在地图中,其中密钥是用户想要的图书的名称,映射的值是属于相关图书的图书对象。对于不同类型的地图,请参阅Map specification中的实施类,并确定哪种方法最适合您的需求。
public class Library {
private HashMap<String, Book> collection;
public Library() {
collection = new HashMap<>();
}
public Book getBook(String name) {
return collection.get(name);
}
public void addBook(String name, Book book) {
collection.put(name, book);
}
}
public class Book {
private boolean isLend;
public boolean isLend() {
return isLend;
}
}
然后,您可以在库对象上调用以下内容
Library library = new Library(); // Don't forget to add books
library.getBook(%nameofbookvar%).isLend();
答案 2 :(得分:0)
Book variable = BookStore.get(theBookTheUserWants);
variable.isLend();