在搜索一些代码时,我遇到了箭头操作符,它到底是做什么的?我以为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
我可以看到@Nullable和@Nonnull注释可以在防止有用NullPointerException秒,但他们并不很远传播.
@Nonnull不为空并因此不执行空检查的危险.下面的代码会导致标有一个参数@Nonnull是null没有提出任何投诉.它会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
sourceCompatibility和之间有什么关系/区别targetCompatibility?当它们被设置为不同的值时会发生什么?
根据Gradle文档:
sourceCompatibility是"编译Java源时使用的Java版本兼容性".
targetCompatibility是"为Java生成类的Java版本."
我的理解是,targetCompatibility将生成与特定版本的Java兼容的java字节码,这是一个功能的子集sourceCompatibility吗?
IntelliJ 14的发布公告中提到了临时文件,但没有提到如何创建或使用它们.任何文档链接都非常有用.
我已经尝试过的东西
我已经执行了几次用于创建临时文件的Web搜索,并且发现的唯一内容是关于该功能的文章,其中没有一篇指定了如何实际使用该功能.
我也试过"文件" - >"新...",但是没有刮擦文件的选项.
我确实在PhpStorm插件中找到了一些关于暂存文件的文档,但是,尽管两者都是JetbBrains产品,但这似乎完全不相关,并且这些快捷方式都不起作用.
我试图在Mac上自动设置开发人员环境.部分设置是安装Docker Toolbox.我无法通过命令行找到有关如何执行此操作的任何文档.如何自动执行此安装(必须通过命令行触发)?
更新:正如丹尼斯的赞扬所指出的那样
现在存在Docker for Mac,它是Docker Toolbox的替代品.你可以通过自制的桶来获得它:
brew cask install docker
我的许多罐子都有相互矛盾的传递依赖(多个弹簧版本).我想通过显式管理所有依赖项来避免继承的版本冲突,是否可以禁用Gradle中的所有传递依赖项?
我知道我可以添加transitive = false到每个依赖项中,但我希望有一种更简单的方法.
compile(group: 'org.springframework', name: 'spring', version: '2.5.2') {
transitive = false
}
Run Code Online (Sandbox Code Playgroud) 我想创建一个Git别名来执行多个命令,但我无法找到有关如何完成此操作的文档.
来自'man git-config'
Run Code Online (Sandbox Code Playgroud)alias.*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).
使用IntelliJ打开build.gradle文件,在"从Gradle导入项目"窗口中,"Excluded Roots"预先填充了.gradle和build目录.
如何指定文件中应排除(或不排除)的build.gradle目录?
具体来说,我使用的协议缓冲区插件将生成的源放在/build/generated-sources/目录中.如果build目录被排除,那么我的源类不会看到生成的类.
详细信息: IntelliJ 12.1.3,Gradle 1.4
在我的弹性搜索服务器中,我有一个索引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).
如何将标签分配给帖子映射?
java ×4
gradle ×3
annotations ×1
automation ×1
dependencies ×1
docker ×1
elastica ×1
git ×1
ide ×1
intellij-14 ×1
java-8 ×1
macos ×1
mapping ×1
nullable ×1
relationship ×1
scratch-file ×1