小编luk*_*tei的帖子

@Flow注释的含义

在Intellij IDEA 14中,有一项称为自动合同推理的功能[1].

推断的@Flow注释究竟是什么意思?

例如,对于Collection boolean addAll(Collection<? extends E> c),推断的合同是 boolean addAll(@NotNull @Flow Collection<? extends E> c).

@Flow在这种情况下意味着什么?

[1] http://blog.jetbrains.com/idea/2014/10/automatic-notnullnullablecontract-inference-in-intellij-idea-14/

java inference intellij-idea contract

15
推荐指数
1
解决办法
5676
查看次数

在gradle中添加对特定productFlavor和buildType的依赖性

我想知道如何在gradle中为特定的productFlavor和buildType添加依赖项.例如,我有productFlavor free和构建类型release,如何添加对assembleFreeRelease任务的依赖?

我尝试了很多变种,但都没有效果.

例如我试过:

task('release', dependsOn: assembleProductionRelease) {
} 
// error: Could not find property 'assembleProductionRelease' on root project 'app'.
Run Code Online (Sandbox Code Playgroud)

要么:

task('release', dependsOn: 'assembleProductionRelease') {
}
Run Code Online (Sandbox Code Playgroud)

这里没有错误,但是为每种风味和构建类型执行任务,非常令人困惑.

android build gradle

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

Google如何在API调用中验证SHA1和包名?

在API控制台中注册Android应用以进行Google API访问时,您必须输入应用SHA1证书指纹和应用的包名称.

现在我想知道当api调用只是简单的HTTP请求时,谷歌如何验证这些值是否正确(在最简单的情况下,当你不使用他们的API客户端时,可能附加一些标题值)?您在进行API调用时必须提供API密钥,但这并不能证明输入的值是正确的.

java security android google-api google-authentication

13
推荐指数
1
解决办法
1168
查看次数

Android Studio的Crashlytics构建错误

我正在尝试将CrashLytics与Android Studio和gradle一起使用,但我得到一个令人困惑的错误java.lang.NoSuchMethodError:

我的build.gradle是:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}

apply plugin: 'android'
apply plugin: 'crashlytics'

repositories {
    mavenCentral()
    maven { url 'http://download.crashlytics.com/maven' }
}

android {
    buildToolsVersion "18.0.1"
    compileSdkVersion 18

    //...
}


dependencies {
    compile 'com.android.support:appcompat-v7:18.0.+'
    compile 'com.google.android.gms:play-services:3.2.25'

    compile 'com.crashlytics.android:crashlytics:1.+'
    //compile 'com.newrelic.agent.android:android-agent:2.426.0'

}
Run Code Online (Sandbox Code Playgroud)

当试图$ gradle assembleDebug:

Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be …
Run Code Online (Sandbox Code Playgroud)

android gradle crashlytics

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

没有实例的Java枚举

在RXJava [1]中有一个枚举[2]定义为

public enum JavaFxObservable {
    ; // no instances


    public static void staticMethod() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这种技术使用没有实例的枚举的目的是什么?为什么不使用标准类?


java enums rx-java rx-javafx

7
推荐指数
1
解决办法
579
查看次数

Postgres在使用date()函数时不使用索引

我的架构是

CREATE TABLE a (
  id     BIGINT PRIMARY KEY,
  dt     TIMESTAMP NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

我在dt上创建了一个索引:

CREATE INDEX a_dt_index ON a (dt);
Run Code Online (Sandbox Code Playgroud)

当我使用像这样的查询时,索引工作正常

SELECT *
FROM a
WHERE dt >= '2008-12-30' AND dt < '2008-12-31';
Run Code Online (Sandbox Code Playgroud)

但是,当我使用date()函数时,不使用索引.

SELECT *
FROM a
WHERE date(dt) = '2008-12-30'
Run Code Online (Sandbox Code Playgroud)

在我看来,这两个查询在语义上是相同的,那么为什么索引没有被使用?为什么我必须创建一个显式的date()索引?

CREATE INDEX a_date_index ON a (date(dt));
Run Code Online (Sandbox Code Playgroud)

sql database postgresql indexing database-optimization

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