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

本文探讨了在编程中不当使用字符串作为值、枚举、聚合及能力表的替代品所带来的问题,并提出了改进方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值