如何解决创建一个switch语句将Color类数据类型转换为String类型
我当前正在尝试创建一个switch语句,在使用getColor()时,将颜色键入为字符串会将Color.red(或其他)的基本颜色类型设置为可变颜色。如果我什至无法正确提出问题,我事先表示歉意。我四个星期前开始编程。
public class ChooseAColor {
private Color color
//default color
public Color defaultColor(){
this.color = Color.red
public Color getColor(Color color){
switch (color){
case "Red":
return color = java.awt.Color.red;
break;
case "Black":
return java.awt.Color.black;
break;
case "Blue":
return color = java.awt.Color.blue;
default:
break;
}
}
}
然后尝试致电并打印
public class TestChooseAColor{
ChooseAColor myColor = new ChooseAColor();
System.out.println("My favorite color is: " + myColor.getColor("Red")
我期望输出
My favorite color is red
但是,我得到了
java: incompatible types: java.awt.Color cannot be converted to int
解决方法
快到了。看来问题出在您的方法上。为什么不将参数从public Color getColor(Color color){
更改为public Color getColor(String color){
?
毕竟,在打印消息中,您要为方法指定一个字符串,而不是颜色。因此,如果您想给它一个字符串,那么方法参数应该接受字符串就很有意义。
此外,您可能想对那些return语句做些事情。为什么要在返回时设置颜色?为什么不回来呢?
代替此:
return color = java.awt.Color.red;
尝试一下:
return java.awt.Color.red;
最后,看来您有一些不必要的break;
语句。如果您要返回值,则无需休息,对吧?
但是请不要忘记您需要返回一个值,因此看起来该默认值将需要INSTEAD的中断;
也许您可以从代码中使用该defaultColor()
方法? (如前所述,带有正确的return语句)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。