我想要这种方法。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
在运行时
const public int x;
有可能吗?
答案 0 :(得分:8)
您无法在运行时为const变量赋值,但仍然可以在逻辑上实现您的需求,
您可以创建静态只读属性和静态构造函数,并从静态构造函数
中指定值public class ClassName
{
static readonly int x;
static ClassName()
{
x = 10;
}
}
编译器对const属性和静态属性的作用相同,内存分配也相同
所有常量声明都是隐式静态
ref https://blogs.msdn.microsoft.com/csharpfaq/2004/03/12/why-cant-i-use-static-and-const-together/
答案 1 :(得分:1)
不,你不能。
答案 2 :(得分:1)
使用const是不可能的。 const应该在编译时初始化。
然而,有一个替代方案。您可以使用readonly,您可以在运行时通过构造函数初始化它。
有关详细信息,请参阅 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/constants
https://www.safaribooksonline.com/library/view/c-cookbook/0596003390/ch03s25.html