小编Bar*_*ler的帖子

使用Hibernate Validator在错误消息中包含字段名称

我正在使用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之间.

提前致谢.

java spring hibernate hibernate-validator

15
推荐指数
3
解决办法
1万
查看次数

受保护的成员行为一旦被继承.

我对保护标识符有一些疑问.在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)

java inheritance scjp protected

6
推荐指数
1
解决办法
4858
查看次数

spring-hateoas 0.8.0.RELEASE与Spring 4的兼容性

我正在使用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 spring spring-hateoas

6
推荐指数
1
解决办法
190
查看次数

将Java对象字段转换为URI中的查询参数

我的问题是:如何将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)

以下工作符合预期,但是我想知道是否有更简单的方法来实现它。

java rest spring http jackson

3
推荐指数
1
解决办法
3112
查看次数

将表达式的结果分配给基元

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个文字吗?澄清非常感谢.

java primitive scjp

2
推荐指数
1
解决办法
104
查看次数