我想我可能已经知道答案但已选择要求澄清。Java - 设置器中值的验证
我有私有变量,getter和setter方法的简单POJO。
有些是字符串变量,我只想让他们被初始化时要使用特定的字符串。
我的问题很简单 - 我应该把这个验证的POJO - 也许在制定者的一个或应设置器调用之前,此验证在其他地方发生?
下面的例子应该只允许值gzip
或compress
private String compressionType = null;
public void setCompressionType(String compressionType) {
if(! (compressionType.equals("gzip")) || (compressionType.equals("compress")))
{
compressionType = "gzip"; //a chosen default
}
this.compressionType = compressionType;
}
有效设置默认值,如果在“弗雷德”什么愚蠢的人的类型。
我询问这个理由纯粹是因为我工作的地方我看到这种事情经常,在这里接受,但我不知道是应该的。
使用'enum'只允许这两种类型,并使用enum作为参数。 – SomeJavaGuy
使用枚举做你想做的事 –
有人喜欢外部Validator,有人喜欢getter中的验证,有人用Decorator模式做。你决定。 – ByeBye