Java:使用变量调用Objectmethod

时间:2015-09-03 16:52:23

标签: java object methods

我想为像这样的库调用一个方法:

%nameofbookvar%.islend();

但是用户应该将nameofbookvar分配给他想要的书。所以我希望java知道nameofbookvar是一个变量,而不是对象的名称。 我怎么能这样做?

谢谢!:)

3 个答案:

答案 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();