有类似的东西:
import com.example.test.classA;
import com.example.test.classB;
import com.example.test.classC;
public class MyClass {
...
Flavors p = Flavors.VANILLA;
...
String flavorChoice = "Flavors.CHOCOLATE";
...
}
在其中Flavors
一个enum
导入的类中声明的位置:
public enum Flavors { CHOCOLATE, VANILLA, LEMON };
如何使用反射从字符串中获取值flavorChoice
?
不要假设我知道Flavors
声明了哪个导入的类。
甚至不要假设Flavors
可以从内部访问MyClass
。
澄清
字符串flavorChoices
应该产生一个Object
,在上面的例子中,对象可能是类型Flavors
。但它也可能引用其他枚举中的其他常量:
String flavorChoice = "ExtraFlavors.MENTA";
String flavorChoice = "ExoticFlavors.CHALK";
String flavorChoice = "AnyEmun.ANYCONSTANT";
直到运行时我才知道字符串内容是什么。我希望能够:
- 检查引用的枚举确实存在并且可以从 MyClass 访问
- 获取引用的枚举常量并将其放入
Object