我试图弄清楚为什么String.format()它的行为方式.
上下文:系统编程类,编写汇编程序.
目标文件中有一个5字符的十六进制字段,我从一个值创建.
尝试使用: String.format("%05X", decInt);
这适用于正数(11 - > 0000B)然而它不适用于负数(-1 - > FFFFFFFF而不是FFFFF)
我想我可以只取最后5个字符的子字符串,但我还是想弄清楚它为什么会这样.
我正在将Java项目从Ant迁移到Gradle.我认为最好的解决方案是使用Gradle的多项目支持,但我找不到摆脱循环依赖的方法.
原始项目设置为具有以下布局:
- project/
- common/
- product-a/
- product-b/
Run Code Online (Sandbox Code Playgroud)
之间的关系common,product-a并且,product-b是棘手的.将common取决于product-a或product-b根据配置文件.同样地,product-a和product-b取决于common,无论配置属性的.product-a而product-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通过设置common和product-a/ product-b或使用多态来设置类的接口,但在我继续使用其中任何一个之前,是否有更好的方法来实现Gradle?我还没准备好摆脱这种技术债务.
名为 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) 我仍然是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) 我正在尝试创建一个与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) 我有一个像这样的数组:
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)
在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)
您能否举一个有用的例子?
我正在尝试将此 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 中为装箱和原始布尔值注册类型适配器的正确方法是什么?
java ×5
gradle ×2
kotlin ×2
amazon-s3 ×1
arrays ×1
docker ×1
formatting ×1
gson ×1
hex ×1
javascript ×1
mongodb ×1
mongodb-java ×1
spring ×1
spring-mvc ×1
string ×1