小编Edw*_*ard的帖子

checkstyle警告"不允许声明变量,返回值或'ArrayList'类型的参数." 意思?

我写了下面的课.

package com.stackoverflow.examples;

import java.util.ArrayList;

/** RandomX. */
public final class Names {
    /** List of names. */
    private ArrayList<String> names = new ArrayList<String>();

    /** Constructor. */
    public Names() {
        this.names.add("Test");
    }

}
Run Code Online (Sandbox Code Playgroud)

namesCheckstyle 声明的行中给出警告:

不允许声明变量,返回值或"ArrayList"类型的参数.

我该如何解决这个问题,这个警告背后的理由是什么?

java eclipse warnings arraylist checkstyle

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

如何在Java中将null转换为false?

在我的代码中,我有一个org.apache.tapestry5.json.JSONObject名字j.我想use-name从该Object 读取属性:

Boolean isUseName       = (Boolean) j.opt("use-name");
Run Code Online (Sandbox Code Playgroud)

值可以是true,false或null(如果JSONObject中不存在该条目).现在我想用isUseName一个条件语句:

if(!isUseName) {System.out.println("No Name to be used.")}
Run Code Online (Sandbox Code Playgroud)

如果"use-name"不在JSONObject中,这会给我一个NullPointerException.一种方法是简单地先检查是否isUseName为空,例如

if(isUseName != null && !isUseName) {System.out.println("No Name to be used.")}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果有更优雅的方式.isUseName如果j.opt()返回null ,是否可以(自动)设置为false ?我想到的一件事是使用三元表达式,但这有多余j.opt("use-name"):

Boolean isUseName = (j.opt("use-name") != null)
                  ? (Boolean) j.opt("use-name")
                  : false;
Run Code Online (Sandbox Code Playgroud)

java ternary-operator isnull nullpointerexception

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

Clojure中的导入调用有什么区别?

Clojure中的以下import语句似乎都是有效的:

(import '(com.example.db.modules DBModule))
(import 'com.example.db.modules.DBModule)
(import '[com.example.db.modules DBModule])
(import (com.example.db.modules DBModule))
(import com.example.db.modules.DBModule)
(import [com.example.db.modules DBModule])
Run Code Online (Sandbox Code Playgroud)

但他们的区别是什么,我为什么要使用其中一个呢?(特别是在一个import-statement中导入多个Classes时)

import function clojure difference

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

从ArrayList中排除元素

我想迭代字符串的ArrayList:

List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
Run Code Online (Sandbox Code Playgroud)

而不是迭代所有项目:

for(String a : list) {
  System.out.println(a);
}
Run Code Online (Sandbox Code Playgroud)

我想排除列表的最后一个元素.目前我使用:

for(int i = 0; i < list.size()-1; i++) {
  System.out.println(list.get(i));
}
Run Code Online (Sandbox Code Playgroud)

但我想知道,如果有一个较短的形式.例如在R中,您可以简单地生成没有最后一个元素的列表:

a = c("A", "B", "C")
a[-length(a)]
Run Code Online (Sandbox Code Playgroud)

java iterator arraylist

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

在Dockerfile中不使用多个RUN命令的原因是什么?

我见过几个Dockerfile,我觉得人们试图避免使用RUN命令.但为什么?

所以有什么(但在这个例子中是重复的文本)更喜欢

RUN gem install \
  jekyll \
  github-pages
Run Code Online (Sandbox Code Playgroud)

过度

RUN gem install jekyll
RUN gem install github-pages
Run Code Online (Sandbox Code Playgroud)

performance docker dockerfile

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

如何确定是否存在新版本的npm-packages

我有一个package.json包含以下依赖项设置:

"dependencies": {
  "bootstrap": "3.1.1",
  "electron": "1.3.1"
}
Run Code Online (Sandbox Code Playgroud)

我知道有更新版本的boostrap和电子.

我问自己:有没有办法找出新版本的依赖项是否存在?

在Bower.io中,我会sipmly运行bower list列出已安装的软件包和可能的更新,然后运行bower update -S以安装更新.

是否有类似的工作流程npm

直接安装较新版本的方法是

"dependencies": {
  "bootstrap": "^3.1.1",
  "electron": "^1.3.1"
}
Run Code Online (Sandbox Code Playgroud)

并运行npm up.但似乎没有命令只列出软件包的可能更新.

dependencies node.js npm bower npm-install

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