小编Xel*_*ian的帖子

如何在 IntelliJ IDEA 中显示构建目录

我构建了我的项目,并在文件系统上看到了构建目录,但在 IntelliJ IDEA 13.01 中我看到: 在此处输入图片说明

如何让 IntelliJ 像在 Eclipse 中一样显示它

build intellij-idea gradle

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

Java 8是LeapYear实现.逻辑运算符意味着什么

我正在研究Date API的java 8实现,并发现了这一点

根据ISO符号日历系统规则,检查年份是否为闰年.

此方法在整个时间线上应用闰年的当前规则.一般来说,一年是闰年,如果它可以被4整除而没有余数.然而,可被100整除的年份不是闰年,除了可以被400整除的年份.

例如,1904年是闰年,它可被4整除.1900不是闰年,因为它可以被100整除,但2000年是闰年,因为它可以被400整除.

计算是渐近的 - 将相同的规则应用到遥远的未来和远期.这在历史上是不准确的,但对于ISO-8601标准是正确的.

public boolean isLeapYear(long prolepticYear) {
        return ((prolepticYear & 3) == 0) && ((prolepticYear % 100) != 0 || (prolepticYear % 400) == 0);
    } 
Run Code Online (Sandbox Code Playgroud)

但是请给我们预感和3.

11111001111
    &
00000000011
00000000011
Run Code Online (Sandbox Code Playgroud)

什么意思是prolepticYear&3.

java api java-8

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

什么是Gradle的ivy-publish插件中的"SoftwareComponent"?

从Gradle 1.5引入了ivy-publish插件,其中有一个新的接口 - 文档中的SoftwareComponent编写:

将Gradle项目发布到Ivy存储库的最简单方法是指定要发布的SoftwareComponent.

那么什么是SoftwareComponent?它包括什么 - 来自构建的所有罐子或什么?谢谢..

plugins ivy gradle

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

为什么在指定-b时不使用settings.gradle文件?

Gradle用户指南中我们可以阅读

You can use the -b option to select another build file. If you use -b option then settings.gradle file is not used.
Run Code Online (Sandbox Code Playgroud)

所以我们有:

-Example      #Project root
 --src
   --main
   --test
 --build.gradle
 --second.gradle #Second build script
 --settings.gradle
 

这样做的目的是什么?如果我想尝试与我的多项目构建不同的东西,我创建另一个脚本文件 - second.gradle并将其放在同一目录中.但是想要旧的settings.gradle文件来包含我的子项目.

如果我在示例项目的根目录中执行我的gradle命令,例如:

gradle  -b second.gradle clean build
Run Code Online (Sandbox Code Playgroud)

为什么Gradle不使用settings.gradle文件?当指定的构建文件不在同一个目录中时保护自己,因为Gradle将在build.gradle文件的目录中查找settings.gradle,然后在父目录中查找.但是他们可以清空或者可以来自另一个项目吗?

build gradle

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

如何使用多个build.gradle文件?

我的项目结构是:

在此输入图像描述

我希望用户另外使用规范 dir中的一些构建脚本来配置构建,但是还要使用主构建脚本来配置项目.使用-b 选项 可以指定另一个与默认构建不同的构建scrpt,但我也想要执行此默认构建.我不想使用apply from:并添加所有脚本,因为用户必须决定他想要什么.

那么有没有办法告诉Gradle添加额外的构建脚本 - 用于配置额外项目的命令行?

structure build project intellij-idea gradle

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

如何使用批处理脚本创建没有新行的空文件?

我想创建新文件并在其中添加信息.但在一开始我想清除它的所有信息.所以我写道:

@if "%DEBUG%" == "" @echo off
@rem ############################################
@rem # Create new empty file                    #
@rem ############################################

:setup
if "%OS%"=="Windows_NT" setlocal
SetLocal EnableDelayedExpansion
goto create

:create    
@cmd /c echo( >%temp%\hosts
goto end

:end
if "%OS%"=="Windows_NT" endlocal
PAUSE
Run Code Online (Sandbox Code Playgroud)

但是当我打开文件时,前面有空行

<empty line>
SomeInfo
Run Code Online (Sandbox Code Playgroud)

哪里只是空行.如何创建没有前导空行的新文件?

batch-file echo temp

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

Groovy String评估运行时

嗨,我有一个填充运行时的字符串值,我想用它来构造另一个字符串.

static value= ''
static construct = "${-> value - '/'}"
Run Code Online (Sandbox Code Playgroud)

所以,当我 ="/www.stackoverflow.com"时,构造等于"www.stackoverflow.com "

但是当我这样做的时候

static value= ''
static construct = {-> value - '/'}
Run Code Online (Sandbox Code Playgroud)

construct等于一些关闭名称.我想知道这是什么目的?为什么使用闭包,GString一切正常?为什么只使用闭合没有任何反应?

已编辑: 此方法调用的值已更改.

def someCoplmexMethod(){
   value="/www.stackoverflow.com"
}
Run Code Online (Sandbox Code Playgroud)

string groovy closures gstring

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

使用 Spock 使用 Unroll 在测试名称中添加方法调用

我有一个代码,我想将方法​​调用值放在方法的名称中。

        @Unroll
        def 'check #file other text'() {
        setup:
        def file = allProperties.keySet().getAt(0)
        ...
        where:
        ...
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个特殊的变量,目的只是为了命名方法。我可以做这样的事情:

        static def allProperties
        def setupSpec(){
           allProperties== [1: 'asd', 2: 'ddd']
        }
        @Unroll
        def 'check #allProperties.keySet().getAt(0) other text'() {
        ....
        where:
        ...
Run Code Online (Sandbox Code Playgroud)

编辑:添加 setupSpec()

groovy unroll spock

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

在java中使用哪种设计模式来处理不同的文件?

我有一个简单的任务是从不同结构的xml、rdf、txt文件中读取信息,并将其放入一些POJO自定义对象(MyObject)中。所以我想知道使用哪种设计模式来使我的代码具有更好的设计。

我认为这个问题,我认为我需要Factory PatterIterator Pattern。在工厂传递文件:

ReaderFactory factory = new ReaderFactory("input.rdf");
//ReaderFactory factory = new ReaderFactory("input.xml");
Iterator<MyObject> iter = factory.getIterator();
Run Code Online (Sandbox Code Playgroud)

所以工厂根据文件扩展名选择要返回的迭代器的哪个实现 - 这些读取 rdf、xml 或 txt。然后使用这个迭代器,我可以轻松地处理对象。添加添加未来阅读的新文件扩展名。

java xml rdf design-patterns

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

根据 Java 中 Object 的类型选择实现

我有一个父类型

public class IObject{}
Run Code Online (Sandbox Code Playgroud)

并且可以有很多子类(甚至是未来的新子类)

public class Object1 extends IObject{}
public class Object2 extends IObject{}
public class Object3 extends IObject{}
...
public class ObjectN extends IObject{}
Run Code Online (Sandbox Code Playgroud)

然后根据这些对象的类型我必须做不同的操作。

public class StrategyForObject1(){void do{}}
public class StrategyForObject2(){void do{}}
public class StrategyForObject3(){void do{}}
...
public class StrategyForObjectN(){void do{}}
Run Code Online (Sandbox Code Playgroud)

所以我想从我的 Context 类:

   public Conext {
    IObject o;

    public void setObject(IObject o) {
        this.o = o;
    }

    void logic() {
        if (o instanceOf Object1) {
            new StrategyForObject1().do();
        }
        if (o instanceOf Object2) {
            new StrategyForObject2().do();
        } …
Run Code Online (Sandbox Code Playgroud)

java design-patterns strategy-pattern visitor-pattern genetic-algorithm

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