我是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语法?
我尝试了已经附带maven插件的新Eclipse Kepler.
但是,当我想添加依赖项(打开pom.xml,转到依赖项选项卡并单击添加)时,我可以在搜索框中输入一些像"jetty"这样的字符串,但没有任何反应.在旧版本中,我得到了包含"jetty"的所有依赖项的列表.
我不知道这是否重要但我在打开"添加依赖关系屏幕"时直接获取信息:"工件ID不能为空".
我不使用代理或有任何网络问题.
我也错过了一些信息:"索引maven repo ......"
任何的想法?
谢谢!
对于单元测试,我使用derby内存数据库.
在测试运行时,是否有机会使用Eclipse Datasource Explorer之类的工具连接到此数据库?
我google了很多,有时我发现了类似的东西:
连接URL:jdbc:derby:// localhost:1527/memory/mydb ...
但它对我不起作用.
它说1527是默认端口.
是否可以使用eclipse explorer等工具连接到derby内存数据库?数据库是否打开要连接的连接端口?或者有什么特别的东西我必须配置为这个工作?
谢谢,亚历克斯
是否可以在您自己的应用程序中使用"google now"这种酷炫的语音激活功能?
所以我想要的是用户不必通过按下按钮或某事来触发激活.像那样.
我更喜欢通过关键字激活自动语音识别.例如:当"google now"打开时,您只需说:"google".在该命令之后,系统正在监听实际输入.
这可以通过使用android API吗?或者是否有任何提供此行为的开源库?
我知道这可能是"开放的耳朵",但不幸的是开放耳朵不适用于Android.
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有什么区别?
他们中的哪个到底做什么?
有没有一种简单的方法来检查 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) 我真的不知道如何与单位合作.
谷歌告诉我,团结的默认值是:1单位= 1米.
问题是:当我创建一个立方体时,我无法分辨它的大小.它是用以下比例创建的:(1,1,1)但是我没有任何信息它的尺寸以米为单位.
当我创建一个平面时,它也会显示一个(1,1,1)的比例,但几乎是立方体大小的10倍.
那么怎样才能做到这样的事情:创建高度为2米的立方体,创建一个尺寸为5*5米的平面,当我无法设置实际尺寸时?
我想使用 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。
如何解决这个问题?
我正在使用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)
我在这做错了什么?我不需要包括任何其他罐子?我呢?
以下问题:我有一个只允许一个调用者执行的函数.如果有人试图调用该函数并且它已经忙,则第二个调用者应该立即返回错误.
我尝试了以下方法:
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 处理程序建立最佳实践。我需要模拟依赖项,但因此我必须能够访问/模拟这些依赖项。
我不想考虑一些解决方案,例如全局变量/应用程序状态。或者将所有处理程序作为包含依赖项成员变量的结构的函数。
我对通过以下方式注入处理程序所需的依赖项的解决方案感到满意:
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 在我的测试中重建我的路由器!
所以现在我真的没有一个很好的解决方案来方便地设置我的路线,但也能够模拟依赖项。
任何的想法?