Raj*_*sad 5 java string session enums constants
我正在使用一些Java类,javax.Mail.Session以及MessageDigest我正在构建的工具.
我注意到很难为它们分配属性,因为它们正在使用String常量.
例如,对于Session对象,您必须String在Property实例中分配键值对,然后用于创建Session.因此,如果您希望会话记录调试消息"smtp.mail.debug",请"true"在Property实例中进行分配.同样,如果您希望MessageDigest使用SHA,请将MessageDigest实例创建为MessageDigest.getInstance("SHA")
我还没弄清楚要做什么以及在哪里获取信息,如果说我想MessageDigest使用MD5/ RC4etc 实现,或者在我的Session对象中添加另一个属性.
如果公共枚举被这些各自的类暴露给分配属性,那不是真的更好吗?
至少可以为程序员节省大量的搜索时间.
我可以看到两个主要原因:
向后兼容性
enum在Java 1.5中引入之前,您提供的两个示例已经是API的一部分.还有更多像这样的案例.
可扩展性
举个例子来看看MessageDigest.该javadoc的规定:
需要Java平台的每个实现来支持以下标准MessageDigest算法:
•MD5
•SHA-1
•SHA-256
这使得其他java.security.Provider库可以提供MessageDigest除API最低要求之外的其他算法的实现.仅在enumAPI级别的限制中列出默认值将限制可扩展性.
javax.mail.Provider在邮件会话属性的情况下,允许其他实现支持附加/自定义属性也是如此.
| 归档时间: |
|
| 查看次数: |
2876 次 |
| 最近记录: |