我有一个与此类似的 POJO
public class Color {
public List<Shade> shades = new ArrayList();
public setShades (List<Shade> shades) {this.shades = shades;}
public List<Shade> getShades() {return this.shades;}
}
Run Code Online (Sandbox Code Playgroud)
这样我只能通过列表添加阴影。这意味着我只能做:
Color myColor = new Color();
List<Shade> myShades = new ArrayList();
myShades.add(new Shade("light"));
myColor.setShades(myShades);
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够直接添加到已设置的色调列表中。像这样的东西:
Color myFinalColor = new Color();
for (Color c : myColorList) {
for (Shade s : myShade) {
if (!("dark").equalsIgnoreCase(s.getName()))
myFinalColor.addToShadeList(s); //This will add to the existing shade list.
}
}
Run Code Online (Sandbox Code Playgroud)
我可以做这样的事情来实现我想要的,但看起来很麻烦。
Color myFinalColor = new Color();
for (Color c : myColorList) {
for (Shade s : myShade) {
if (!("dark").equalsIgnoreCase(s.getName())) {
List<Shade> existingShades = myFinalColor.getShades();
existingShades.add(s);
myFinalColor.setShades(existingShades);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你为什么不这样做:
myFinalColor.getShades().add(s);
Run Code Online (Sandbox Code Playgroud)
或者只是addShade向 Color 类添加方法,如下所示:
public void addShade(Shade shade) {
shades.add(shade);
}
Run Code Online (Sandbox Code Playgroud)