小编Mik*_*der的帖子

箭头操作符' - >'在Java中做什么?

在搜索一些代码时,我遇到了箭头操作符,它到底是做什么的?我以为Java没有箭头操作符.

return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
        return Car.SEDAN == ((Car)arg0).getStyle();
});
Run Code Online (Sandbox Code Playgroud)

详细信息:Java 6,Apache Commons Collection,IntelliJ 12

更新/答案:事实证明IntelliJ 12支持Java 8,它支持lambdas,并且"折叠"Predicates并将它们显示为lambda.下面是"未折叠"的代码.

return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
    public boolean evaluate(Object arg0) {
        return Car.SEDAN == ((Car)arg0).getStyle();
    }
});
Run Code Online (Sandbox Code Playgroud)

java intellij-idea apache-commons java-8 apache-commons-collection

151
推荐指数
5
解决办法
17万
查看次数

如何更有效地使用@Nullable和@Nonnull注释?

我可以看到@Nullable@Nonnull注释可以在防止有用NullPointerException秒,但他们并不很远传播.

  • 在一个间接层之后,这些注释的有效性完全下降,所以如果你只添加一些注释,它们就不会传播得很远.
  • 由于这些注释没有得到很好的执行,因此存在假设标记的值@Nonnull不为空并因此不执行空检查的危险.

下面的代码会导致标有一个参数@Nonnullnull没有提出任何投诉.它会NullPointerException在运行时抛出.

public class Clazz {
    public static void main(String[] args){
        Clazz clazz = new Clazz();

        // this line raises a complaint with the IDE (IntelliJ 11)
        clazz.directPathToA(null);

        // this line does not
        clazz.indirectPathToA(null); 
    }

    public void indirectPathToA(Integer y){
        directPathToA(y);
    }

    public void directPathToA(@Nonnull Integer x){
        x.toString(); // do stuff to x        
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使这些注释更严格地执行和/或进一步传播?

java annotations nullable nullpointerexception code-standards

120
推荐指数
7
解决办法
14万
查看次数

Gradle,"sourceCompatibility"与"targetCompatibility"?

sourceCompatibility和之间有什么关系/区别targetCompatibility?当它们被设置为不同的值时会发生什么?

根据Gradle文档:

sourceCompatibility是"编译Java源时使用的Java版本兼容性". targetCompatibility是"为Java生成类的Java版本."

我的理解是,targetCompatibility将生成与特定版本的Java兼容的java字节码,这是一个功能的子集sourceCompatibility吗?

java gradle

116
推荐指数
3
解决办法
7万
查看次数

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

如何在IntelliJ 14中创建临时文件?

IntelliJ 14的发布公告中提到了临时文件,但没有提到如何创建或使用它们.任何文档链接都非常有用.

我已经尝试过的东西

我已经执行了几次用于创建临时文件的Web搜索,并且发现的唯一内容是关于该功能的文章,其中没有一篇指定了如何实际使用该功能.

我也试过"文件" - >"新...",但是没有刮擦文件的选项.

我确实在PhpStorm插件中找到了一些关于暂存文件的文档,但是,尽管两者都是JetbBrains产品,但这似乎完全不相关,并且这些快捷方式都不起作用.

ide intellij-idea intellij-14 scratch-file

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

通过命令行在Mac上安装Docker Toolbox

我试图在Mac上自动设置开发人员环境.部分设置是安装Docker Toolbox.我无法通过命令行找到有关如何执行此操作的任何文档.如何自动执行此安装(必须通过命令行触发)?


更新:正如丹尼斯的赞扬所指出的那样

现在存在Docker for Mac,它是Docker Toolbox的替代品.你可以通过自制的桶来获得它:brew cask install docker

macos automation docker docker-toolbox

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

Gradle,如何禁用所有传递依赖项

我的许多罐子都有相互矛盾的传递依赖(多个弹簧版本).我想通过显式管理所有依赖项来避免继承的版本冲突,是否可以禁用Gradle中的所有传递依赖项?

我知道我可以添加transitive = false到每个依赖项中,但我希望有一种更简单的方法.

compile(group: 'org.springframework', name: 'spring', version: '2.5.2') {
    transitive = false
}
Run Code Online (Sandbox Code Playgroud)

dependencies gradle transitive-dependency

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

具有多个命令的Git别名的语法

我想创建一个Git别名来执行多个命令,但我无法找到有关如何完成此操作的文档.

  1. 具有多个命令的Git别名的语法是什么?
  2. 这记录在哪里?

来自'man git-config'

   alias.*
Run Code Online (Sandbox Code Playgroud)

git(1)命令包装器的命令别名 - 例如在定义"alias.last = cat-file commit HEAD"之后,调用"git last"等同于"git cat-file commit HEAD".为避免使用脚本时出现混淆和麻烦,将忽略隐藏现有Git命令的别名.参数由空格分隔,支持通常的shell引用和转义.引号对和反斜杠可用于引用它们.

如果别名扩展以感叹号为前缀,则将其视为shell命令.例如,定义"alias.new =!gitk --all --not ORIG_HEAD",调用"git new"等同于运行shell命令"gitk --all --not ORIG_HEAD".请注意,shell命令将从存储库的顶级目录执行,该目录可能不一定是当前目录.通过从原始当前目录运行git rev-parse --show-prefix来设置GIT_PREFIX.见git-rev-parse(1).

git

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

如何使用Gradle指定IntelliJ排除目录?

使用IntelliJ打开build.gradle文件,在"从Gradle导入项目"窗口中,"Excluded Roots"预先填充了.gradlebuild目录.

如何指定文件中应排除(或不排除)的build.gradle目录?

具体来说,我使用的协议缓冲区插件将生成的源放在/build/generated-sources/目录中.如果build目录被排除,那么我的源类不会看到生成的类.

详细信息: IntelliJ 12.1.3,Gradle 1.4

intellij-idea gradle

25
推荐指数
2
解决办法
7932
查看次数

Elasticsearch关系映射(一对一和一对多)

在我的弹性搜索服务器中,我有一个索引http://localhost:9200/blog.
(博客)索引包含多种类型.

例如:http://localhost:9200/blog/posts,http://localhost:9200/blog/tags.

在标签类型中,我创建了超过1000个标签和10个帖子类型的帖子.

例如:帖子

{   
    "_index":"blog",
    "_type":"posts",
    "_id":"1",
    "_version":3,
    "found":true,
    "_source" : {
        "catalogId" : "1",
       "name" : "cricket",
       "url" : "http://www.wikipedia/cricket"
    }
}
Run Code Online (Sandbox Code Playgroud)

例如:标签

{   
    "_index":"blog",
    "_type":"tags",
    "_id":"1",
    "_version":3,
    "found":true,
    "_source" : {
        "tagId" : "1",
        "name" : "game"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将现有标签分配给博客帖子(即relationship => mapping).

如何将标签分配给帖子映射?

mapping relationship elasticsearch elastica

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