0
在此方法中,我创建一个字符串变量,并将其移动到另一个字符串变量。使用像这样的变量:set.color(Color.variable)
private void produceRainbow() {
String color = "RED";
produceArc(color);
}
有更多的代码,但它并不重要(实质上,将字符串更改为其他颜色)。
private void produceArc(String color) {
GOval arc = new GOval(leftX, upperY, rightX, lowerY);
arc.setColor(Color.color);
}
(忽略的变量leftX,upperY,rightX,洛厄)
这里我要颜色设置为一个字符串:
下一页此方法。 所以我希望它成为arc.setColor(Color.RED)
当我编译,我得到这个错误:
Program.java:89: cannot find symbol
symbol : variable color
location: class java.awt.Color
arc.setColor(Color.color);
它甚至有可能做我想做的事?如果是这样,我做错了什么? (如果你很好奇,我为每个弧(红色,蓝色,绿色等等,都有自己的方法)做了一个单独的方法,这个工程,但我想知道如果我可以只使用一种方法需要一个变量,这使得代码更短)
你真的想传递一个字符串吗?你可以马上传递Color.RED。 或者如果你真的想使用一个字符串,你可以使用Color.FromName(string name); – James
如果你真的想要使用一个字符串,你可以使用反射来获得与该字符串匹配的名称的静态字段,或者构建一个将字符串映射到Color实例的映射。但是那些是丑陋和不安全的(就类型/编译检查而言)。我会用@詹姆斯的建议去。 – vanza
@James那么如果我不使用字符串,我该如何更改我的代码? 在第一种方法中,我更改“produceArc(Color.RED);” 并在第二种方法中“ private void produceArc(Color.color){ ... arc.setColor(Color.color); “ 我在这里得到的错误是”“ –
Chronicle