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