【发布时间】:2019-04-12 06:48:33
【问题描述】:
与我之前的线程相关,我想打印这样的输出:
bookId = "1234" (String)
bookName = "Machine Learning" (String)
price = $20 (int)
ratings = (array of object)
rater = a, score = 5
rater = b, score = 3
但这一次,我尝试使用OOP方式。
首先,我创建了一个名为ProductView 的 POJO 类,该类将如下所示:
public class ProductView {
// field
private String bookId;
private String bookName;
private int price;
private List<Ratings> ratings;
// a constructor i tried to make
public ProductView(String bookId, String bookName, int price, List<Ratings> ratings) {
this.bookId = bookId;
this.bookName = bookName;
this.price = price;
this.ratings = ratings;
}
public String getBookId() {
return bookId;
}
public void setBookId(String bookId) {
this.itemId = itemId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public Ratings getRatings() {
return ratings;
}
public void setRatings(Ratings ratings) {
this.ratings = ratings;
}
}
之后,我创建了一个名为Ratings 的类,其中包含以下字段:
public class Ratings {
private String rater;
private int score;
public Ratings(String rater, int score) {
this.rater = rater;
this.score = score;
}
}
最后,我创建了一个名为 Main 的主类:
public class Main {
public static void main(String[] args) {
}
}
在主类中,我想创建一个 ProductView 类的实例并赋予它一些价值。
但我不知道如何在构造函数中使用列表对象参数。
谁能给我一些见解?
【问题讨论】:
-
这实际上是我的问题,我如何在我的对象中定义一个值,因为我的构造函数有一个列表
-
首先,您的评级 getter 和 setter 将不起作用,因为这些方法处理
Ratings,但您的字段实际上是List<Ratings>。其次,我认为Ratings类应该称为Rating,因为每个对象只有一个评分值。解决这些问题后,使用List<Rating> ratings = java.util.Arrays.asList(new Rating(...), new Rating(...), ...);创建评分列表 -
谢谢,真的很有帮助。