小编Sub*_*bby的帖子

使用赋值"="和括号{}感到困惑

我是gradle的新手(也是groovy),我几乎没有落后于某些概念,并且不知道它是否与groovy或gradle相关以及谷歌有哪些关键词,以获得一些帮助.

我经常偶然发现:

android {
    [some configuration]
}
Run Code Online (Sandbox Code Playgroud)

那么什么是android?一类?命名空间?一系列属性?

但更令人困惑的是:

有时我看到的配置看起来像:

minSdkVersion 19
Run Code Online (Sandbox Code Playgroud)

这似乎是一项任务,但没有一个等号.有时候会有像等号一样的作业

source = "folder/file.java"
Run Code Online (Sandbox Code Playgroud)

所以这很令人困惑.等号与没有等号.所有这些支架的东西.

我看到的所有常规介绍都没有涵盖这些主题.那么它是一些gradle约定还是真正的groovy语法?

groovy gradle

28
推荐指数
2
解决办法
1165
查看次数

无法使用m2e插件在Eclipse Kepler中搜索工件

我尝试了已经附带maven插件的新Eclipse Kepler.

但是,当我想添加依赖项(打开pom.xml,转到依赖项选项卡并单击添加)时,我可以在搜索框中输入一些像"jetty"这样的字符串,但没有任何反应.在旧版本中,我得到了包含"jetty"的所有依赖项的列表.

我不知道这是否重要但我在打开"添加依赖关系屏幕"时直接获取信息:"工件ID不能为空".

我不使用代理或有任何网络问题.

我也错过了一些信息:"索引maven repo ......"

任何的想法?

谢谢!

eclipse maven m2e eclipse-kepler

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

如何使用Eclipse Datasource Explorer浏览derby内存数据库?

对于单元测试,我使用derby内存数据库.

在测试运行时,是否有机会使用Eclipse Datasource Explorer之类的工具连接到此数据库?

我google了很多,有时我发现了类似的东西:

连接URL:jdbc:derby:// localhost:1527/memory/mydb ...

但它对我不起作用.

它说1527是默认端口.

是否可以使用eclipse explorer等工具连接到derby内存数据库?数据库是否打开要连接的连接端口?或者有什么特别的东西我必须配置为这个工作?

谢谢,亚历克斯

eclipse derby

6
推荐指数
1
解决办法
4396
查看次数

Android上的关键字激活语音识别

是否可以在您自己的应用程序中使用"google now"这种酷炫的语音激活功能?

所以我想要的是用户不必通过按下按钮或某事来触发激活.像那样.

我更喜欢通过关键字激活自动语音识别.例如:当"google now"打开时,您只需说:"google".在该命令之后,系统正在监听实际输入.

这可以通过使用android API吗?或者是否有任何提供此行为的开源库?

我知道这可能是"开放的耳朵",但不幸的是开放耳朵不适用于Android.

android speech-recognition

6
推荐指数
1
解决办法
3315
查看次数

DialContext KeepAlive和go http.Client的传输IdleTimeout的区别

client := &http.Client{
        Transport: &http.Transport{
            DialContext: (&net.Dialer{
                KeepAlive: 5 * time.Second,
            }).DialContext,
            IdleConnTimeout: 3 * time.Second,
        },
    }
Run Code Online (Sandbox Code Playgroud)

KeepAlive和IdleConnTimeout有什么区别?

他们中的哪个到底做什么?

httpclient go

6
推荐指数
1
解决办法
959
查看次数

如何检查 json 是否与结构/结构字段匹配

有没有一种简单的方法来检查 myStruct 的每个字段是否已使用 json.Unmarshal(jsonData, &myStruct) 进行映射。

我能想到的唯一方法是将结构体的每个字段定义为指针,否则您将始终返回一个初始化的结构体。因此,每个作为对象的 jsonString(即使是空的 {})都会返回一个初始化的结构,并且您无法判断该 json 是否代表您的结构。

我能想到的唯一解决方案是非常不舒服的:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name *string `json:name`
    Age  *int    `json:age`
    Male *bool   `json:male`
}

func main() {
    var p *Person
    err := json.Unmarshal([]byte("{}"), &p)
    // handle parse error
    if err != nil {
        return
    }

    // handle json did not match error
    if p.Name == nil || p.Age == nil || p.Male == nil {
        return
    }

    // now use the …
Run Code Online (Sandbox Code Playgroud)

json go

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

如何统一使用单位(米)

我真的不知道如何与单位合作.

谷歌告诉我,团结的默认值是:1单位= 1米.

问题是:当我创建一个立方体时,我无法分辨它的大小.它是用以下比例创建的:(1,1,1)但是我没有任何信息它的尺寸以米为单位.

当我创建一个平面时,它也会显示一个(1,1,1)的比例,但几乎是立方体大小的10倍.

那么怎样才能做到这样的事情:创建高度为2米的立方体,创建一个尺寸为5*5米的平面,当我无法设置实际尺寸时?

unity-game-engine

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

Golang gorilla 期望在静态服务上使用斜杠

我想使用 gorilla/mux 和 http.FileServer 为 swagger-ui 提供服务。

这是迄今为止有效的路由:

router := mux.NewRouter()
router.PathPrefix("/swagger-ui/").Handler(http.StripPrefix("/swagger-ui/", 
http.FileServer(http.Dir("swagger-ui/"))))
http.ListenAndServe(":8080", router)
Run Code Online (Sandbox Code Playgroud)

问题是:只有 GET /swagger-ui/ 返回 swagger 页面。当我执行(大多数用户也期望)没有斜杠的 GET /swagger-ui 时,我得到 404。

如何解决这个问题?

go gorilla

5
推荐指数
1
解决办法
1558
查看次数

无法使用com.sun.net.HTTPServer.httpserver

我正在使用Eclipse Indigo和Java jdk7.

我想创建一个小网络服务器,但我无法使用sun的网络服务器.

当我输入:

{
 com.sun.net.httpserver.httpserver server;
}
Run Code Online (Sandbox Code Playgroud)

我得到以下Eclipse-Error-Message:

Description Resource    Path    Location    Type
Access restriction: The type HttpServer is not accessible due to restriction
    on required library C:\jdk1.7.0\jre\lib\rt.jar
Server.java /REST-Server/src/com/test/restserver    line 7  Java Problem
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?我不需要包括任何其他罐子?我呢?

java eclipse com.sun.net.httpserver

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

在go中锁定互斥锁的好方法

以下问题:我有一个只允许一个调用者执行的函数.如果有人试图调用该函数并且它已经忙,则第二个调用者应该立即返回错误.

我尝试了以下方法:

1.使用互斥锁

会很容易的.但问题是,您无法检查互斥锁是否被锁定.你只能阻止它.因此它不起作用

2.等待频道

var canExec = make(chan bool, 1)

func init() {
    canExec <- true
}

func onlyOne() error {
    select {
    case <-canExec:
    default:
        return errors.New("already busy")
    }

    defer func() {
        fmt.Println("done")
        canExec <- true
    }()

    // do stuff

}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这里:

  • 看起来真的是梅西
  • 如果容易错误地阻塞频道/错误地写入频道

3.互斥和共享状态的混合

var open = true

var myMutex *sync.Mutex

func canExec() bool {
    myMutex.Lock()
    defer myMutex.Unlock()

    if open {
        open = false
        return true
    }

    return false
}

func endExec() {
    myMutex.Lock()
    defer myMutex.Unlock()

    open …
Run Code Online (Sandbox Code Playgroud)

go

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

golang 模拟依赖项中的单元测试 http 处理程序

目前,我尝试为单元测试 go 处理程序建立最佳实践。我需要模拟依赖项,但因此我必须能够访问/模拟这些依赖项。

我不想考虑一些解决方案,例如全局变量/应用程序状态。或者将所有处理程序作为包含依赖项成员变量的结构的函数。

我对通过以下方式注入处理程序所需的依赖项的解决方案感到满意:

func helloHandler(db *DbService) http.HandlerFunc {
  return func(w http.ResponseWriter, r *httpRequest) {
    // handler code goes here
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以为路由提供这个处理程序:

http.HandleFunc("/hello", helloHander(myDbService))
Run Code Online (Sandbox Code Playgroud)

我也可以轻松测试:

helloHandler(myDbService)(req, respRecorder)
Run Code Online (Sandbox Code Playgroud)

但是当我使用例如大猩猩复用器(我从一开始就没有考虑过)时,我又遇到了另一个问题。

Gorilla/mux 添加了额外的语义,如按方法过滤(GET / POST)、提供路径参数等。

所以我需要测试生成的大猩猩路由器。但是后来我再次无法注入我的模拟依赖项。

当我取回路由器时,一切(依赖项)都已经设置好了。

但是我也不想因为 DRY 在我的测试中重建我的路由器!

所以现在我真的没有一个很好的解决方案来方便地设置我的路线,但也能够模拟依赖项。

任何的想法?

unit-testing dependency-injection go

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