忽略这个问题
我有一个扩展通用超类的子类。这里是
BlueColorPainter extends ColorPainter<BlueColor>;
GreenColorPainter extends ColorPainter<GreenColor>;
RedColorPainter extends ColorPainter<RedColor>;
ColorPainter 画家是一个抽象类,它具有未实现的方法 paint()。
我已经声明了枚举
class enum ColorsUsage{
BLUE("blue","BlueColorPainter","BlueColor"),
Green("green","GrerenColorPainter","GreenColor"),
Red("red","RedColorPainter","RedColor");
String colorName,colorPainterClass,colorClass;
ColorPainters(String colorName, String colorPainterClass,String colorClass) {
this.colorName = colorName;
this.colorPainterClass = colorPainterClass;
this.colorClass = colorClass;
}
}
传递颜色名称时,该方法应返回适当的 colorPainter 实例。喜欢
字符串颜色=“任何”;//xxx可以是蓝色,红色,绿色
ColorPainter<?> colorPainter;
if(color=="blue")
colorPainter=new BlueColorPainter();
else if(color=="red")
colorPainter=new RedColorPainter();
if(color=="green")
colorPainter=new GreenColorPainter();
我想要一个等效于上述 if else 条件的实现方法。
我编写了一些使用 Enum 类 ColorsUsage 的代码。但无法完成。
public static ? getPainter(String color){
for(ColorsUsage cp:ColorsUsage.values()){
//write code to create the instance of painter class, ex:BlueColorPainter
}
}
请填写“?” 和注释行。
如何调用该方法。
ColorPainter<?> painter= getPainter("blue");