无法访问枚举类外的枚举值。
如何访问枚举常量,如Reddel,Jonathan,Goldendel等
enum Apple{
Reddel,Jonathan,Goldendel,Winesap,Cortland;
}
public class Test{
enum Apple{
Seb,Majj,Dlred,Wipe,Cland;
}
public static void main(String s[]){
//here I want to access enumeration constant from Apple outside Test.
//Apple.Winesap
//Apple.Goldendel
System.out.println(Apple.Winesap);
}
}
答案 0 :(得分:2)
如果您的课程包含在课程中,请说
package pkg;
然后使用pkg.Apple.Winesap
将起作用。 (其他Apple
的完全限定名称为pkg.Test.Apple
。)
您还可以从pkg.Apple
静态导入成员:
import static pkg.Apple.*;
然后使用Winesap
。
如果您正在使用默认包(没有包声明),那么内部Apple
会影响另一个Apple
并且您运气不佳。 (对于静态导入也是如此;您无法从默认包中的类静态导入成员。)
相关问题:
答案 1 :(得分:0)
应附加包名。
答案 2 :(得分:0)
您需要指定完整的包路径。我测试的以下代码正在编译:
xyz.reserve(3); // only revserve spaces for 3 elements, xyz.size() is still 0
xyz[0]=3; xyz[1]=1; xyz[2]=2; // UB
std::sort(xyz.begin(), xyz.end()); // There's nothing in xyz, so xyz.begin() == xyz.end(), so std::sort sort nothing here
std::cout<<xyz[0]<<xyz[1]<<xyz[2]<<"\n"; // UB again
答案 3 :(得分:0)
枚举在某个地方宣布,想象在ClassName.java
。您可以使用ClassName.Apple.Reddel
和Test.Apple.Seb