一.背景 枚举经常被大家用来储存一组有限个数的候选常量.比如下面定义了一组常见数据库类型: public enum DatabaseType { MYSQL, ORACLE, SQLSERVER } 当围绕这一组常量出现功能上的扩展点时,很多人的做法是为新的功能编写一个新类,新类中依赖该枚举类型. 比如要在界面上显示常见数据库类型的官方名称,可以用如下类实现这一功能: public class DatabaseNameParser { public String getDatabaseName(
jdk1.5新特性之-----枚举 问题:某些方法所接收的数据必须是在固定范围之内的, 解决方案: 这时候我们的解决方案就是自定义一个类,然后是私有化构造函数,在自定义类中创建本类的对象对外使用. class Gender{ String value; public static final Gender man = new Gender("男"); public static final Gender woman = new Gender("女"); priva
好长时间没有写博文了,今天继续. 这次跟大家分享的内容起因于对一个枚举值列表的序列化,下面简化后的代码即能重现.为了明确起见,我显式指定了枚举的基础类型. // 定义一个枚举类型. public enum SomeEnum :int { First, Second, Third, ... ... } // 重现问题的代码. var list = new List<SomeEnum>(); ; i < ; ++i) { list.Add((SomeEnum)(i % )); } var f
建议4.TryParse比Parse好 如果注意观察,除string之外的所有的基元类型.会发现它们都有两个将字符串转换为自身类型的方法:Parse和TryParse.以类型double为例. 两者最大的区别是,如果字符串格式不满足转换的要求,Parse方法将会引发一个异常:TryParse方法则不会引发异常,它会返回false,同时将result置为0. //Parse int a = int.Parse("123a"); //TryParse int x = 0; if (int.
转自C语言清空输入缓冲区的N种方法对比 C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 char *fgets(char * restrict s, int n, FILE * restrict stream); char *gets(char *s);//可能导致溢出,用fgets代替之. //格式化输入系列 int fscanf(FILE *