小编Jen*_*gsa的帖子

如何用Java命名HashMap?

这可能是一个愚蠢的问题,但我从来没有找到一种令人满意的方法来命名HashMap<K,V>Java中的类型变量.例如-可以说我有一个HashMap,每一个桶是一<K,V>对,其中K一个String说,代表"国家"和VInteger代表县国家有数量.

应该HashMap被命名为" mapStateCounty"," stateToCountyMap"等?哪一个看起来在逻辑上更具吸引力和直观性,而不会让人感到困惑和冗长?

java naming-conventions

52
推荐指数
5
解决办法
2万
查看次数

更改log4j.properties的位置

我想将所有配置文件放在/config我的应用程序目录的子文件夹中.Log4j期待我的应用程序的根文件夹中的log4j.properties文件.有没有办法告诉log4j在哪里查找属性文件?

java log4j

51
推荐指数
2
解决办法
9万
查看次数

为什么Java不附带CopyOnWriteMap?

JDK中附带了CopyOnWrite*用于实现SetList,但没有对Map和我常常感叹这个事实.我知道有其他的集合实现有它们,但如果一个标准出货将是很好的.这似乎是一个明显的遗漏,我想知道它是否有充分的理由.任何人都知道为什么这被遗漏了?

java collections concurrency map concurrenthashmap

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

目前没有原型.索引完成更新后,原型列表将刷新

在安装m2eclipse的 Eclipse中,当我选择时

文件>新建>项目...> Maven> Maven项目

使用默认工作区位置

目录:Nexus Indexer

选中,出现以下错误消息:

目前没有原型.索引完成更新后,原型列表将刷新.

为什么会出现此错误?

nexus m2eclipse maven

30
推荐指数
2
解决办法
2万
查看次数

SPARQL查询和独特计数

我有以下查询:

SELECT ?tag WHERE {
  ?r ns9:taggedWithTag ?tagresource.
  ?tagresource ns9:name ?tag
}
LIMIT 5000
Run Code Online (Sandbox Code Playgroud)

结果是:

abc
abc
abc
abc
abc
abc
abc
abd
ads
anb
Run Code Online (Sandbox Code Playgroud)

我想得到像这样的东西:

tag | count
-----------------
abc     7
abd     1
ads     1
anb     1
Run Code Online (Sandbox Code Playgroud)

我有尝试过count(*)count(?tag),但比我得到的错误信息"Variable or "*" expected."谁能告诉我,如何作出正确的?

count sparql

29
推荐指数
2
解决办法
6万
查看次数

最适合数据容器的容器?

对于仅数据的Docker容器,最合适(最小,最简单)的容器是什么?

在文档中,他们使用training/postgres容器.但是,我相信另一个容器实际上会运行数据库(例如postgres).

http://docs.docker.com/userguide/dockervolumes/

我假设数据容器非常小,因为它通常只为那个容器提供数据量.

创建仅限数据的容器时,可能会忽略容器?

docker

29
推荐指数
4
解决办法
7878
查看次数

设置JAX-RS 2.0 Client API的请求超时

我编写了简单的REST Web服务客户端类,它使用JAX-RS 2.0客户端API来发出REST请求.我试图弄清楚如何为每次调用设置请求超时.以下是请求的代码:

Client client = ClientBuilder.newBuilder().build();
WebTarget resourceTarget = client.target(restServiceUrl)
        .path("{regsysID}/{appointmentID}/")
        .resolveTemplate("regsysID", regSysId)
        .resolveTemplate("appointmentID", apptId);

Invocation invocation = resourceTarget.request(MediaType.APPLICATION_JSON).buildPut(null);
String createSessionJson = invocation.invoke(String.class);
Run Code Online (Sandbox Code Playgroud)

java rest jax-rs

25
推荐指数
4
解决办法
4万
查看次数

javax.inject.Singleton和javax.ejb.Singleton之间的区别

我很困惑.javax.inject.Singleton和之间的确切区别是javax.ejb.Singleton什么?

java singleton ejb inject java-ee-7

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

我可以在ConstraintValidator中为Method参数更改属性路径吗?

如果您熟悉Bean验证框架,则您知道无法获取方法参数的名称.因此,如果对方法的第一个参数执行@NotNull约束并且验证失败,则getPropertyPath将类似于"arg1".

我想创建我自己的@NotNull版本,它可以取一个值,例如@NamedNotNull("emailAddress").但我无法弄清楚如何覆盖我的Validator中的#getPropertyPath?有没有办法做到这一点,或者我坚持使用"arg1"或"arg2"等.

编辑

根据我收到的答案,我能够提出以下实现,允许我从@QueryParam或@PathParam注释中获取值,并将其用作Bean验证注释(如@NotNull)的属性路径.

对于Jersey,您需要创建以下类.请注意DefaultParameterNameProvider的实现:

public class ValidationConfigurationContextResolver implements ContextResolver<ValidationConfig> {
    @Override
    public ValidationConfig getContext( final Class<?> type ) {
        final ValidationConfig config = new ValidationConfig();
        config.parameterNameProvider( new RestAnnotationParameterNameProvider() );
        return config;
    }

    static class RestAnnotationParameterNameProvider extends DefaultParameterNameProvider {

        @Override
        public List<String> getParameterNames( Method method ) {
            Annotation[][] annotationsByParam = method.getParameterAnnotations();
            List<String> names = new ArrayList<>( annotationsByParam.length );
            for ( Annotation[] annotations : annotationsByParam ) {
                String name = getParamName( annotations );
                if ( name == null )
                    name = …
Run Code Online (Sandbox Code Playgroud)

java hibernate bean-validation jersey-2.0

23
推荐指数
2
解决办法
7568
查看次数

ui:repeat不适用于Map

我有一个Map键/值,我初始化@PostConstruct如下:

Map<String, String> myMap;

@PostConstruct
public void init() {

  myMap=new LinkedHashMap<String, String>();
  myMap.put("myKey","myValue");

}

public Map<String, String> getMyMap() {
    return myMap;
}

public void setMyMap(Map<String, String> myMap) {
    this.myMap = myMap;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试用<ui:repeat>如下所示的迭代迭代这个Map时,我在Map的getter上设置了一个断点,我注意到它没有被调用,所以没有打印出来:

<ice:panelGroup>
    <ui:repeat items="#{myBean.myMap}" var="entry" varStatus="loop">
        <input type="checkbox" name="myCheckBoxes" value="#{entry.value}" />
        <span class="#{fn:contains(entry.value,'g') ? 'bold-style' : ''}">#{entry.key}</span>
    </ui:repeat>
</ice:panelGroup>
Run Code Online (Sandbox Code Playgroud)

但是当替换上面的代码时<c:foreach>,一切正常,并且列表按预期打印,任何想法为什么我会得到这样的行为?

jsf icefaces jsf-2 icefaces-2

22
推荐指数
4
解决办法
2万
查看次数