java – 如何以正确的方式使用Enum?
发布时间:2020-12-15 08:48:39 所属栏目:Java 来源:网络整理
导读:我非常喜欢 Java,我第一次使用枚举,如下所示: public class Web { public String baseUrl; public static enum Environment { DEVELOPMENT("http://development"),PRODUCTION("http://production"),SANDBOX("http://sandbox"); public final String baseUrl
我非常喜欢
Java,我第一次使用枚举,如下所示:
public class Web { public String baseUrl; public static enum Environment { DEVELOPMENT("http://development"),PRODUCTION("http://production"),SANDBOX("http://sandbox"); public final String baseUrl; private Environment(String baseUrl) { this.baseUrl = baseUrl; } } } 枚举环境有三个常量DEVELOPMENT,PRODUCTION,SANDBOX. Web类还具有要设置Environment的baseUrl的baseUrl(不确定这是否是这样做的好习惯). 为了设置baseUrl,我现在正在这样做: new Web().setBaseUrl(Web.Environment.PRODUCTION.baseUrl) 我不确定这是在类中使用枚举的正确方法.有没有办法直接将Web baseUrl设置为枚举baseUrl. 我在这里错过了一些东西. 提前致谢 解决方法
我认为你走在正确的轨道上,但是你通过这种方式访问??URL,失去了Java枚举的一些优势.相反,请使用枚举的类型来帮助确保将正确的值传递给方法.也就是说,单独传递枚举,让方法从中提取任何值.例如:
new Web().setEnvironment(Web.Environment.PRODUCTION); 现在,您只能将环境传递给Web类,而不是任何字符串. [编辑]然后您的Web.setEnvironment方法如下所示: public void setEnvironment(Environment environment) { this.baseUrl = environment.getBaseUrl(); } 这样,我就不能偶然地调用新的Web().setEnvironment(“marvo”).它强制执行一定程度的正确性. vishal_aim是对的.即使使用Enums,您也应该练习数据隐藏和封装,因此请将实例变量设为私有,并提供getBaseUrl()等访问器来检索值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |