我是一名试图学习C++的C#/ Java开发人员.当我尝试学习指针的概念时,我很惊讶以前我必须处理这个概念.如何仅使用.NET或Java开发人员熟悉的概念来解释指针?我是否真的从来没有处理过这个问题,它只是隐藏在我身上,还是我一直都在使用它而不称之为?
出于各种商业原因,我想在我的一个类中保留一些静态ID.它们本来是,int但我想改变它们,Integer所以我可以对它们做一个平等(即MY_ID.equals(..)避免使用NPE)
当我将它们更改为Integer时,我的switch语句中出现错误.该文件说,整数应该是交换机内确定.
报价
[Switch]也适用于枚举类型(在枚举类型中讨论),String类,以及一些包含某些基本类型的特殊类:Character,Byte,Short和Integer(在Numbers和Strings中讨论).
在我的代码下面,如果我是一个,int那么它编译.当它是一个Integer它并没有说a constant expression is required.我已经尝试过,.intValue()但这也不起作用.
我真的很蠢吗?或完全误读文档?
private static final Integer i = 1;
@Test
public void test() {
switch(mObj.getId()){
case i: //do something
default: //do something default
}
}
Run Code Online (Sandbox Code Playgroud)
感谢您的任何指示.暂时我一直在int做他们new Integer(myint).equals(...)