我正在使用Hibernate Validator 4.2.0.Final,我正在寻找在我的错误消息中包含类字段名称的最简单方法.
我找到的是以下线程使用自定义ResourceBundle和Hibernate Validator.根据这个,我应该为每个约束注释创建我的自定义注释,为每个约束注释添加一个属性.
有没有更清洁的方法来实现这一目标?
以下代码:
@Size(max = 5)
private String myField;
Run Code Online (Sandbox Code Playgroud)
产生默认错误:大小必须介于0和5之间.
我希望它是:myField大小必须介于0和5之间.
提前致谢.
我对保护标识符有一些疑问.在K.Sierra的Sun认证Java程序员学习指南的第一章中,我发现了以下信息:
"一旦子类 - 包外继承受保护的成员,该成员(由子类继承)对子类外的任何代码都是私有的,除了子类的子类."
我提供了反映上述陈述的示例代码,对我来说绝对清楚.
// Parent class
package package1;
import package2.Child;
public class Parent {
protected int i = 5;
}
// Child class
package package2;
import package1.Parent;
public class Child extends Parent {
// variable 'i' inherited
}
package package2;
public class Neighbour {
public void protectedTesting(){
Child child = new Child();
System.out.println(child.i); // no access
}
}
Run Code Online (Sandbox Code Playgroud)
我已经开始尝试并进行了一些小改动 - 将Neighbor移到package1.并且可以访问"i"变量,这对我来说有点令人惊讶,因为它不符合语句"对子类之外的任何代码变为私有"
更改后的邻居类:
package package1;
import package2.Child;
public class Neighbour {
public void protectedTesting(){
Child child = new …Run Code Online (Sandbox Code Playgroud) 我正在使用0.8.0.RELEASE版本的spring-hateos,它在版本3.2.3.RELEASE中有弹簧库(spring-core和spring-webmvc)作为编译时依赖项.
但是,在运行时我想在版本4.2.2.RELEASE中使用spring-core和spring-webmvc.
有谁知道这个版本的spring-hateos是否与最新版本的spring库兼容?
我的问题是:如何将Java对象中的所有字段添加到URI作为查询参数。
我正在尝试使用多个查询参数调用HTTP GET请求。所有这些查询参数都来自一个Java对象。我正在使用Spring Framework提供的RestTemplate和Jackson提供的ObjectMapper。
@Override
public List<MyTypes> find(MyFilter myFilter) {
// object to Map
ObjectMapper objectMapper = new ObjectMapper();
Map<String, String> map = objectMapper.convertValue(myFilter, new TypeReference<Map<String,String>>() {});
// Map to MultiValueMap
LinkedMultiValueMap<String, String> linkedMultiValueMap = new LinkedMultiValueMap<>();
map.entrySet().forEach(e -> linkedMultiValueMap.add(e.getKey(), e.getValue()));
// call RestTemplate.exchange
return getRestTemplate().exchange(
uriBuilder().path(RestResourcePaths.My_PATH).queryParams(linkedMultiValueMap).build().toUri(),
HttpMethod.GET,
null,
new ParameterizedTypeReference<List<MyTypes>>() {}).getBody();
Run Code Online (Sandbox Code Playgroud)
以下工作符合预期,但是我想知道是否有更简单的方法来实现它。
K.Sierra在她的书"SCJP学习指南"中提到"我们知道一个文字整数总是一个整数,但更重要的是,一个涉及任何大小或更小的表达式的结果总是一个整数."
我已经开始尝试了,我对以下结果有点困惑:
byte a = 1; // correct
byte b = 1 + a; // incorrect (needs explicit casting)
byte c = 1 + 1; // correct (I expected it to be incorrect)
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释为什么最后一个例子不需要投射?为什么Java编译器会进行隐式转换?是因为有2个文字吗?澄清非常感谢.