小编ord*_*lex的帖子

Java中的String.format()和十六进制数字

我试图弄清楚为什么String.format()它的行为方式.

上下文:系统编程类,编写汇编程序.

目标文件中有一个5字符的十六进制字段,我从一个值创建.

尝试使用: String.format("%05X", decInt);

这适用于正数(11 - > 0000B)然而它不适用于负数(-1 - > FFFFFFFF而不是FFFFF)

我想我可以只取最后5个字符的子字符串,但我还是想弄清楚它为什么会这样.

java string formatting hex twos-complement

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

如何在Gradle中解决循环依赖

我正在将Java项目从Ant迁移到Gradle.我认为最好的解决方案是使用Gradle的多项目支持,但我找不到摆脱循环依赖的方法.

原始项目设置为具有以下布局:

- project/
  - common/
  - product-a/
  - product-b/
Run Code Online (Sandbox Code Playgroud)

之间的关系common,product-a并且,product-b是棘手的.将common取决于product-aproduct-b根据配置文件.同样地,product-aproduct-b取决于common,无论配置属性的.product-aproduct-b绝不会在同一时间建成.

我认为一个快速的解决方案是在以下方面使用这样的东西project/build.gradle:

project(':product-a') {
    dependencies {
        compile project(':common')
    }
}

project(':product-b') {
    dependencies {
        compile project(':common')
    }
}
Run Code Online (Sandbox Code Playgroud)

接下来,我想到了一个方法,让它更接近公正的工作product-a.这导致我这样:

project(':common') {
    dependencies {
        compile project(':product-a')
    }
}
Run Code Online (Sandbox Code Playgroud)

这将引发具有循环依赖性的异常.

我已经考虑过重构,product-a并且product-b通过设置commonproduct-a/ product-b或使用多态来设置类的接口,但在我继续使用其中任何一个之前,是否有更好的方法来实现Gradle?我还没准备好摆脱这种技术债务.

java gradle

10
推荐指数
1
解决办法
9661
查看次数

带有 $in 和 upsert 的 MongoDB UpdateMany

名为 people1 的 Mongo 集合包含以下数据:

db.persons1.find().pretty();


{ "_id" : "Sims",    "count" : 32 }
{ "_id" : "Autumn",  "count" : 35 }
{ "_id" : "Becker",  "count" : 35 }
{ "_id" : "Cecile",  "count" : 40 }
{ "_id" : "Poole",   "count" : 32 }
{ "_id" : "Nanette", "count" : 31 }
Run Code Online (Sandbox Code Playgroud)

现在通过 Java 我编写了代码来增加列表中用户的计数

MongoClient mongoclient = new MongoClient("localhost", 27017);
MongoDatabase db = mongoclient.getDatabase("testdb1");
MongoCollection<Document> collection = db.getCollection("persons1");
List li = new ArrayList();
li.add("Sims");
li.add("Autumn");

collection.updateMany(
    in("_id",li), …
Run Code Online (Sandbox Code Playgroud)

java mongodb mongodb-java mongodb-query

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

Java游乐场的Gradle任务

我仍然是Docker和Gradle的新手,但我正在尝试设置构建Docker镜像的Gradle构建.

我刚刚完成设置一个Dockerfile本地部署并按预期运行jar.我有这个build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'se.transmode.gradle:gradle-docker:1.2'
    }
}

plugins {
    id 'com.github.johnrengelman.shadow' version '1.2.3'
}

apply plugin: 'docker'

jar {
    manifest {
        attributes 'Main-Class': 'com.myapp.Main'
    }
}


task buildDocker(type: Docker, dependsOn: shadowJar) {
    push = false

    applicationName = jar.baseName

    tagVersion = 'latest'
    dockerfile = file('src/main/docker/Dockerfile')

    copy {
        from shadowJar
        into stageDir
    }
}
Run Code Online (Sandbox Code Playgroud)

我跑来./gradlew build buildDocker建立图像.到目前为止,我很满意.

通常我会创建一个一次性类(例如Playground.java),使用main我可以运行和忽略的方法.通常我只是在IDE中运行它,但现在我希望能够连接到我知道将运行的其他Docker容器.

我知道我可以尝试sourceSets通过排除来改变我的使用com.myapp.Main,但我想象可能会有一个更优雅的解决方案,类似于:

task buildDockerPlayground(type: …
Run Code Online (Sandbox Code Playgroud)

java gradle docker

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

无法在Spring Boot Application中使用AWS SDK(套接字不是由此工厂创建的)

我正在尝试创建一个与AWS S3交互的基本Spring Boot应用程序.我只想获得桶列表:

我从一个基本的应用程序开始:

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题出现在Controller中:

@RestController
public class S3RestController {

    @RequestMapping(path = "/", method = RequestMethod.GET)
    public ResponseEntity<String> index() {

        AWSCredentials credentials;
        try {
            credentials = new ProfileCredentialsProvider().getCredentials();
        } catch (Exception e) {
            throw new AmazonClientException("Cannot load credentials.");
        }

        AmazonS3 s3 = new AmazonS3Client(credentials);
        s3.setRegion(Region.getRegion(Regions.US_EAST_1));

        s3.listBuckets();

        return ResponseEntity.ok("Hello!");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的build.gradle:

buildscript {
    ext {
        springBootVersion = '1.5.3.RELEASE'
    }
    repositories {
        mavenCentral()
    } …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc amazon-s3 amazon-web-services

5
推荐指数
2
解决办法
3876
查看次数

获取数组编号的数组

我有一个像这样的数组:

let array = [14, 42, 1, 3]
Run Code Online (Sandbox Code Playgroud)

我想获取映射到此的数组编号:

[1, 0, 3, 2]
Run Code Online (Sandbox Code Playgroud)

原因如下:

  • 1:因为14是第二大数字
  • 0:因为42数量最多
  • 3:...

到目前为止我尝试过的是:

let array = [14, 42, 1, 3]
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

函数调用后的方括号

PagingWithNetworkSample,在RedditActivity.kt线68是包含另一函数调用随后的功能方括号和类型(线78):

private fun getViewModel(): SubRedditViewModel {
    return ViewModelProviders.of(this, object : ViewModelProvider.Factory {
        override fun <T : ViewModel?> create(modelClass: Class<T>): T {
            val repoTypeParam = intent.getIntExtra(KEY_REPOSITORY_TYPE, 0)
            val repoType = RedditPostRepository.Type.values()[repoTypeParam]
            val repo = ServiceLocator.instance(this@RedditActivity)
                    .getRepository(repoType)
            @Suppress("UNCHECKED_CAST")
            return SubRedditViewModel(repo) as T
        }
    })[SubRedditViewModel::class.java]
}
Run Code Online (Sandbox Code Playgroud)

这到底是做什么的?自动转换为该类型?(它不是要调用的数组/列表get

您能否举一个有用的例子?

kotlin

4
推荐指数
1
解决办法
69
查看次数

如何为 boolean.class/Boolean::class.javaPrimitiveType 和 Boolean.class/Boolean.class.java 注册类型适配器

我正在尝试将此 Java 示例转换为 Kotlin:

Gson gson = new GsonBuilder()
        .registerTypeAdapter(Boolean.class, new JsonStrictBooleanDeserializer())
        .registerTypeAdapter(boolean.class, new JsonStrictBooleanDeserializer())
        .create();
Run Code Online (Sandbox Code Playgroud)
val gson = GsonBuilder()
        .registerTypeAdapter(Boolean::class.java, JsonStrictBooleanDeserializer())
        .registerTypeAdapter(Boolean::class.javaPrimitiveType, JsonStrictBooleanDeserializer())
        .create()
Run Code Online (Sandbox Code Playgroud)

但是,它们的行为似乎并不相同。我反编译了 Kotlin 示例,似乎只注册了一种类型的适配器:

(new GsonBuilder())
        .registerTypeAdapter((Type)Boolean.TYPE, new JsonStrictBooleanDeserializer())
        .registerTypeAdapter((Type)Boolean.TYPE, new JsonStrictBooleanDeserializer())
        .create();
Run Code Online (Sandbox Code Playgroud)

在 Kotlin 中为装箱和原始布尔值注册类型适配器的正确方法是什么?

code-conversion gson kotlin

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