我正在使用Hibernate和Spring Annotations进行大量验证,如下所示:
public class Account {
@NotEmpty(groups = {Step1.class, Step2.class})
private String name;
@NotNull(groups = {Step2.class})
private Long accountNumber;
public interface Step1{}
public interface Step2{}
}
Run Code Online (Sandbox Code Playgroud)
然后在控制器中调用它:
public String saveAccount(@ModelAttribute @Validated({Account.Step1.class}) Account account, BindingResult result) {
//some more code and stuff here
return "";
}
Run Code Online (Sandbox Code Playgroud)
但我想基于控制器方法中的一些逻辑来决定使用的组.有没有办法手动调用验证?有点像result = account.validate(Account.Step1.class)?
我知道创建自己的Validator类,但这是我想避免的,我宁愿只使用类变量本身的注释.
通过我们的项目,Coworker让我通过字符串"true:false"grep,我发现很多三元运算符返回显式的真或假.例如:
return this.state == Cursor.CLOSED ? true : false;
Run Code Online (Sandbox Code Playgroud)
不仅仅是在我们的项目中,而且有很多模块/库可以做到这一点.对我来说这似乎是多余的,因为作者可能只是这样写的:
return this.state == Cursor.CLOSED;
Run Code Online (Sandbox Code Playgroud)
它是针对Javascript中的一些陷阱的防御性编码吗?或者只是明确你要回来的东西?
我有点不确定我是如何实现的,我希望得到一些反馈.
我有一个类,Metric,它需要在返回之前将一些数字乘以给定的百分比.它们返回BigDecimal,所以我创建了类变量BigDecimal来存储该百分比,然后在返回时将它们相乘.
public class Metric extends Model {
private static final BigDecimal percentage = new BigDecimal("1.2");
public BigDecimal getMetric() {
return new BigDecimal(getValue()).multiply(percentage);
}
}
Run Code Online (Sandbox Code Playgroud)
静态决赛是否存在任何问题并立即用新声明宣布?此外,我试图研究BigDecimal是否是线程安全的,我找不到一个肯定的答案.对此的反馈将不胜感激.
我试图在一个名为Set的简单C++类上重载=运算符,该类包含一个动态的int数组.对于=运算符,我首先要检查自我赋值,所以我想比较2个指针以查看它们是否具有相同的内存地址.这是代码:
Set& Set::operator=(const Set& setEqual)
{
//first check for self assignment
if(setEqual == this*)
cout << "this is self assignment";
}
Run Code Online (Sandbox Code Playgroud)
出错的错误是 error: expected primary-expression before ')' token
我相信我再次对指针产生了误解,所以如果有人能指出(哈!)我朝着正确的方向发展,我会很感激.
java ×2
c++ ×1
hibernate ×1
javascript ×1
node.js ×1
pointers ×1
spring ×1
spring-mvc ×1
validation ×1