如何从java中的对象数组列表中获取String?

时间:2015-05-06 08:07:05

标签: java arrays object arraylist

我正在让用户输入索引。该索引将用于在名为movieList的列表数组中查找名为Movie的特定对象。在该对象中,我想找到genreOfMovie的值并将其转换为String

我正在使用这行代码:

Movie genreOfMovie = (Movie) movieList.get(Integer.parseInt(index) - 1);

将名副其实设置为用户正在查找的内容。

然而,当我运行程序时,我没有得到一个类型的字符串,我得到的是与database.Movie@71aa1ce9类似的东西。数据库,如果程序的名称和电影是对象的名称,那么@71aa1ce9是什么,我如何改变这个

Movie genreOfMovie = (Movie) movieList.get(Integer.parseInt(index) - 1); 

打印某种字符串的代码,因为那是存储在那里的。

      String index  = TxtSearch.getText();
      Movie genreOfMovie = (Movie) movieList.get(Integer.parseInt(index) - 1);
      int counter = 0;
      do {
          counter++;
      } while (CbxGenres.getComponent(counter) != genreOfGame.toString());

3 个答案:

答案 0 :(得分:0)

您需要覆盖Movie类中的toString()方法。在这里,您可以使用其实例字段以及任何其他字符串来组合对象的描述。

public class Movie {
    private String name;
    private String genre;

    ...

    @Override
    public String toString() {
        return genre;
        // alternatively, you can concatenate data into a String and return that, e.g. return name + " (" + genre + ")"
    }
}

在旁注中,为什么movieList没有通用类型,例如List<Movie>

答案 1 :(得分:0)

您正在做的是打印Movie对象的字符串解释。你想要的是创建自己的字符串解释。您可以通过覆盖影片对象中的toString()方法并返回该类型来完成此操作。

一个例子:

@Override
public String toString() {
   return this.genre;
} 

答案 2 :(得分:0)

“@ 71aa1ce9”是对象实例的名称

Movie genreOfMovie = (Movie)

这是一部电影的实例,为了获得类型,你可能需要在电影上调用一些方法,比如.getGenre()或类似的东西