小编aks*_*618的帖子

在IDEA中调试Kotlin协程时如何查看局部变量值?

当调试器在 Kotlin 协程代码中的某个断点处停止时,我通常会遇到无法访问局部变量值的问题(由于协程实现的性质,它们超出了范围并且无法访问)。

是否有任何编译器参数或 IDEA 技巧可以保持局部变量在挂起点上可见?

显示变量示例的图像已优化解决问题

intellij-idea kotlin kotlin-coroutines

8
推荐指数
1
解决办法
2829
查看次数

如何与多个开发人员共享git功能(或主题)分支

我正在按照这里描述的工作流程进行操作,因为我发现很多参考文献指出这个页面是一个很好的工作流程.正如文章中提到的,"功能"分支在开发人员之间共享,但不会转到中央存储库.

假设开发人员"A"启动了一个新的功能分支git checkout -b newfeature develop.现在让我们说开发人员"B"也需要处理这个功能.这是我的问题.

我做了什么:

  1. 开发人员"B"将开发人员A的计算机添加为远程计算机
  2. 开发人员"B"运行 git branch remoteA/newfeature
  3. 开发人员"B"在这个分支上工作,提交他的工作并将更改推送回remoteA.

现在,第3步无效.我收到一条消息:

remote:错误:默认情况下,更新非裸存储库中的当前分支被拒绝,因为它会使索引和工作树与您推送的内容不一致,并且需要'git reset --hard'来匹配工作树对HEAD.

remote:错误:您可以在远程存储库中将'receive.denyCurrentBranch'配置变量设置为'ignore'或'warn'以允许推入其当前分支; 但是,除非您安排更新其工作树以匹配您以其他方式推送的内容,否则不建议这样做.

remote:error:要压制此消息并仍然保持默认行为,请将receive.denyCurrentBranch'配置变量设置为'refuse'.

我已经设定了sharedRepository = true,但没有帮助.

我有两个问题:

  1. 在开发人员之间共享功能分支的正确方法是什么?
  2. 如何将开发人员B的存储库中的更改推回给开发人员A的原始存储库?

git remote-branch feature-branch git-flow git-branch

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

使用Jetpack导航将自定义过渡动画添加到底部导航设置

我正在使用Jetpack组件开发应用程序。如指南中所述,我用三个片段拼接了底部导航。但是,当按相应的导航按钮在片段之间切换时,我不知道如何更改过渡动画。

据我所知,有两种创建过渡的方法:

  • 将它们作为选项传递给navigate(),在这种情况下没有明确调用;
  • 使用具有动画属性的动作,但不知道如何告诉导航使用这些动作。也许给它一个特定的ID会工作吗?

因此,如何设置自定义过渡动画而不必放弃使用 BottomNavigation.setupWithNavController(navController)

navigation android android-layout android-jetpack android-architecture-navigation

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

如何参数化 Spring Boot 测试的属性值

我正在使用 spring boot 开发一个聚合框架,该框架可用于聚合多种 I/O 操作的结果。此外,它还支持非阻塞(反应式)和阻塞聚合层,该聚合层由属性控制,该属性又用于条件 bean。对于集成测试,我一直在使用此设置:

abstract class HttpUpstreamTests {
    // Setup & test logic
}

@SpringBootTest(properties = {
        "aggregation.reactive.enabled=false",
})
class BlockingAggregationIT extends HttpUpstreamTests {}

@SpringBootTest(properties = {
        "aggregation.reactive.enabled=true",
})
class NonBlockingAggregationIT extends HttpUpstreamTests {}
Run Code Online (Sandbox Code Playgroud)

现在我必须添加几个基类:

abstract class MongodbUpstreamTests {
    // Setup & test logic
}
abstract class SqlUpstreamTests {
    // Setup & test logic
}
Run Code Online (Sandbox Code Playgroud)

但当然,我不能让 IT 类从多个抽象类扩展。一种方法是使所有 upstrteam 测试参数化测试,但我似乎找不到一种方法来使用该方法与@SpringBootTest(properties="aggregation.reactive.enabled=false"). 有没有办法使用不同的属性作为参数化测试的参数?

java testing parameterized-tests spring-boot spring-boot-test

5
推荐指数
0
解决办法
571
查看次数

如何从 cron 表达式获取 Java 持续时间?

我在 Spring Boot 应用程序中有一个计划任务:

@Scheduled(fixedRateString = "${scheduled.task.rate}")
public void runScheduledTask() {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

并进行相应的测试:

@Test
public void test_scheduledTask_runs() {
    await().atMost(Duration.ofMillis(scheduledTaskRate).multipliedBy(2)).untilAsserted(() -> {
        Mockito.verify(scheduledTasks, Mockito.atLeastOnce()).runScheduledTask();
    });
}
Run Code Online (Sandbox Code Playgroud)

现在我想使用 cron 而不是固定速率:

@Scheduled(cron = "${scheduled.task.cron}")
Run Code Online (Sandbox Code Playgroud)

现在我需要使测试适应这一点。如何获取Duration与cron表达式频率对应的对象?

java cron spring java-time

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