我正在让用户输入索引。该索引将用于在名为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());
答案 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()或类似的东西