Scala: список объектов класса, печатающих переменную / атрибуты класса - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь распечатать переменные экземпляров классов, хранящихся в списке. Метод получения должен быть сгенерирован автоматически, но я не могу его использовать.

case class InventoryItem(var inventory_item_name: String, var 

number_of_available_items: Int)

    class InventoryManagement() {


    private var inventory_storage = new ListBuffer[InventoryItem]()


    //New function that connects list to the front.
    def attachToList(): Unit = {}

    //////////////////////////////
    //ADDING AN ITEM TO THE LIST//
    //////////////////////////////
    def addItems(): Unit = {
      var inventory_item_name_input = "0"
      var number_of_available_items_input = "0"
      inventory_item_name_input = scala.io.StdIn.readLine("What is the name of the item you want to add?")
      number_of_available_items_input = scala.io.StdIn.readLine("How many are there?")
      inventory_storage += new InventoryItem(inventory_item_name_input,number_of_available_items_input.toInt)
    }
    ///////////////////
    //PRINT THE LIST //
    ///////////////////
    def listItems(): Unit = {
      println(); println();
      println(inventory_storage)
      println(inventory_storage.InventoryItem.inventory_item_name) // Failure
      println(inventory_storage.inventory_item_name) // Failure
      inventory_storage.foreach(println(inventory_item_name)) // More Failure
    }


}

1 Ответ

0 голосов
/ 29 октября 2018

Допустим, ваш код выглядит так, чтобы добавить элементы в ListBuffer.

case class InventoryItem(var inventory_item_name: String, var number_of_available_items: Int)

var inventory_storage = new ListBuffer[InventoryItem]()

inventory_storage += InventoryItem("a1",1)
inventory_storage += InventoryItem("a2",2)
inventory_storage += InventoryItem("a3",3)
inventory_storage += InventoryItem("a4",4)

Теперь, чтобы получить доступ к переменным классов case внутри listBuffer, вы можете объявить свой foreach как

inventory_storage.foreach{
  x => println(x.inventory_item_name)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...