如果其他类型更适合,则尽量避免使用字符串

原创
2012/12/13 22:16
阅读数 401

1.字符串不适合代替其他的值类型

当一段数据从文件、网络、或者键盘设备,进入到程序之后,它通常以字符串的形式存在。有一种自然的倾向是让它继续保留这种形式,但是,只有当这段数据本质上确实是文本信息时,这种想法才是合理的。

2.字符串不适合替代枚举类型

枚举类型比字符串更加适合用来表示枚举类型的常量

3.字符串不适合代替聚集类型

如果一个实体有多个组件,用一个字符串来表示这个实体通常是不恰当的

String userInfo="zhaohui#25";
更倾向于编写一个类来描述这个数据集
UserInfo userInfo2=new UserInfo("zhaohui", 25);
class UserInfo{
private String userName;
private int age;
public UserInfo(String userName,int age){
	this.userName=userName;
	this.age=age;
}
//set,get方法....
}
4.字符串不适合代替能力表
public class ThreadLocal{
	private ThreadLocal(){}
	public static void set(String key,Object obj);
	public static void get(String key);
}
问题:这些字符串代表一个共享的全局命名空间。要使这些方法可行,客户端提供的字符串键必须是唯一的。
其实可以使用一个不可伪造的键(有时候称为能力键)来替换字符串
public class ThreadLocal{
	private ThreadLocal(){}
	
	public static class Key{
		Key(){}
	}
	
	public static Key getKey(){
		return new Key();
	}
	
	public static void set(Key key,Object value);
	public static Object get(Key key);
}

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部