有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ObjectJava:使用变量调用Objectmethod

我想调用一个库的方法,如:

%nameofbookvar%.islend();

但是用户应该为他想要的书指定bookvar的名称。所以我想让java知道nameofbookvar是一个变量,而不是对象的名称。 我该怎么做

谢谢!!:)


共 (3) 个答案

  1. # 1 楼答案

    在Java上做这件事真的很奇怪,因为如果没有。。。定义它的名字,对吗

    对于简单的名称/值对,可以使用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;
        }
    }
    
  2. # 2 楼答案

    Book variable = BookStore.get(theBookTheUserWants);
    variable.isLend();
    
  3. # 3 楼答案

    您可以将库中的所有图书存储在一个映射中,其中键是用户想要的图书的名称,映射的值是属于相关图书的图书对象。对于不同类型的映射,请参考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();