爲什麼在開關盒中不可能使用枚舉值作爲字符串? (或者有什麼不對這個:)在開關盒中使用枚舉值的字符串表示形式
String argument;
switch (argument) {
case MyEnum.VALUE1.toString(): // Isn't this equal to "VALUE1" ?
// something
break;
case MyEnum.VALUE2.toString():
// something else
break;
重要的是'VALUE1'是靜態的。你可以有自己的'myValueOf()',它仍然可以工作。 –
該死的,'valueOf()'根本就不是'case'。我刪除了之前的評論,無法看到它。再次感謝。 – Bloke
如果參數無效,請注意valueOf()會拋出NPE和IllegalArgumentException。 Bloke的代碼有意義避免處理這些異常(但可惜不起作用)。 – Nereis