小编Lpp*_*Edd的帖子

用Java 8+对Map进行分区

我有一个Map<String, String>和一个List<String>.我想Map根据条件进行分区

foreach(map.key -> list.contains(map.key))
Run Code Online (Sandbox Code Playgroud)

并产生两个Map.最优雅的方式是什么?我在Java 11上,所以你可以在答案中抛出你想要的一切.

我现在要做的是:

map.entrySet()
   .stream()
   .collect(partitioningBy(e -> list.contains(o.getKey())));
Run Code Online (Sandbox Code Playgroud)

但这给了一个Map<Boolean, List<Entry<String, String>>>.

java java-stream

21
推荐指数
5
解决办法
2241
查看次数

如何禁用"光标超出行尾"?

如何停用Delphi的"超出行尾的光标"功能?当我单击一行右侧的空白区域时,或者当我使用箭头键导航到一行时,我希望光标位于该行的实际末尾,而不是"虚拟空间".

ide delphi c++builder

15
推荐指数
1
解决办法
1631
查看次数

GitLab - 带有问题片段的参考文件行/行范围

GitHub 可以做到这一点,但我无法在 GitLab 上找到相同的内容。
GitLab 目前支持此功能吗?

gitlab

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

Angular detectChanges 不适用于子组件

编辑:我只是不知道为什么,但更改检测在层次结构中的第一个孩子处停止。如果我手动调用更深一层(在 中sch-job-detail)的更改检测,则更新值。

我已经建立了一个MatTable可扩展的行。
“可扩展”行部分如下:

<!-- Hidden cell -->
<ng-container matColumnDef="expandedDetail">
    <td mat-cell *matCellDef="let jobModel" [attr.colspan]="displayedColumns.length">
        <div
            class="detail-cell"
            *ngIf="jobModel.isExpanded"
            [@detailExpand]
        >
            <sch-job-detail
                [jobModel]="jobModel"
                ...
            ></sch-job-detail>
        </div>
    </td>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

如您所见,该表拥有一个JobModel(s)数组,每一行都接收自己的JobModel实例。
JobModel是 a 的包装器FormGroup,它也是一个简单接口对象的“换位” Job

sch-job-detail 有其他子组件,例如:

<!-- Toolbar -->
<div class="col">
    <sch-job-row-toolbar
        [isNew]="jobModel.isNew"
        [isEdit]="jobModel.isEdit"
        [isError]="jobModel.isError"
        [isValid]="jobModel.isValid"
        ...
    ></sch-job-row-toolbar>
</div>
Run Code Online (Sandbox Code Playgroud)

在扩张行我有一个按钮,它可以让用户输入一个新的cron表达式,而随后的Cron表达式被添加到FormGroupFormControl

里面TableComponent

public addCronExpression(jobModel: JobModel): void {
    this.matDialog
        .open<CronDialogSmartComponent, any, string>(CronDialogSmartComponent)
        .afterClosed()
        .pipe(filter<string>(c => !!c)) …
Run Code Online (Sandbox Code Playgroud)

angular-material angular

11
推荐指数
1
解决办法
3230
查看次数

Java泛型 - 太复杂了?如何简化?

最初我在CodeReview上发布了这个问题,但这更适合StackOverflow.

我正在编写一个使用Java 6的多步骤过程.假设有3个步骤.
每个都接受相同类型的输入.让我们开始.

这是作为输入传递给每个步骤的对象.此对象充当另一类对象的包装器,以及一些步骤的共享值.请注意,名称会被翻译为更通用的域名,而英文版本的原始文件则是意大利语.

public class EntityStepInput<T extends Entity> {
    public final T entity;
    public boolean modified;
    public boolean canceled;

    public EntityStepInput(final T entity) {
        this.entity = entity;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是每个步骤使用的接口.

public interface EntityStep<T extends EntityStepInput<? extends Entity>> {
    void process(final T stepInput) throws Exception;
}
Run Code Online (Sandbox Code Playgroud)

现在,3个步骤中的2个必须接受EntityStepInput包含Entity从中派生的任何类型的a .

public class FirstEntityStep implements EntityStep<EntityStepInput<? extends Entity>> {
    @Override
    public void process(final EntityStepInput<? extends Entity> stepInput) throws Exception {}
}

public class SecondEntityStep implements EntityStep<EntityStepInput<? extends Entity>> …
Run Code Online (Sandbox Code Playgroud)

java generics design-patterns

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

Jenkins-将JD​​K 11添加到JDK列表

我需要使用Java 11构建应用程序。
但是,下拉菜单在Java 9处停止。

我该怎么办?OpenJDK也可以接受。
我正在使用最新版本的Jenkins。

编辑:到目前为止,我已经使用下载了二进制文件wget,将其提取到计算机上,并JDK_HOME通过Global Configurations 添加了JDK 条目。

java jenkins java-11

10
推荐指数
2
解决办法
4762
查看次数

何时使用 @NotNull 和 @Nullable IntelliJ 注释?

我刚开始使用那些 IntelliJ IDEA Java 注释,但我不明白什么时候应该使用它们,特别是因为 IDEA 大部分时间都能够推断它们。

你们遵守某种规则吗?我不希望看到每个参数或字段都用它们注释,代码可能会变得一团糟。

我知道这可以被认为是基于意见的,但我仍然想阅读答案。

java annotations intellij-idea

9
推荐指数
3
解决办法
4995
查看次数

使用UNREFERENCED_PARAMETER宏

我在Visual Studio上使用\ W4警告级别,而我正在编写Windows程序.

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
Run Code Online (Sandbox Code Playgroud)

我的应用程序中没有使用所有这些参数,因此我在编译时收到警告.

我知道有两种方法可以解决这个问题:

  1. 评论参数HINSTANCE /*hInstance*/......
  2. 使用UNREFERENCED_PARAMETER

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
      UNREFERENCED_PARAMETER(hInstance);
      UNREFERENCED_PARAMETER(hPrevInstance);
      UNREFERENCED_PARAMETER(lpCmdLine);
      UNREFERENCED_PARAMETER(nCmdShow);
    
    Run Code Online (Sandbox Code Playgroud)

哪一个是正确的?哪一个更安全?使用宏有什么问题吗?

c++ parameters macros compiler-warnings visual-studio

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

Kotlin val初始化时使用

使用Java我可能想使用switch语句初始化最终变量:

final String finalValue;

switch (condition) {
   case 1:
      finalValue = "One";
      break;
   case 2:
      finalValue = "Two";
      break;
   case 3:
      finalValue = "Three";
      break;
   default:
      finalValue = "Undefined";
      break;
}
Run Code Online (Sandbox Code Playgroud)

在Kotlin,尝试做同样的事情:

val finalValue: String

when (condition) {
   1 -> finalValue = "One"
   2 -> finalValue = "Two"
   3 -> finalValue = "Three"
   else -> finalValue = "Undefined"
}
Run Code Online (Sandbox Code Playgroud)

导致编译错误.
解决方案正在使用该by lazy组合,但这会创建一个新Lazy实例.

val finalValue: String by lazy {    
   when (condition) {
      1 -> "One"
      2 -> …
Run Code Online (Sandbox Code Playgroud)

final field initialization kotlin

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

KotlinJvmOptions useIR 选项

从 1.3.70 EAP 开始,在

org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
Run Code Online (Sandbox Code Playgroud)

这是

var useIR: kotlin.Boolean
Run Code Online (Sandbox Code Playgroud)

哪个激活

-Xuse-ir
Run Code Online (Sandbox Code Playgroud)

(见https://github.com/JetBrains/kotlin/commit/383239aff62ad353fa5e9a927003d7973e4565be

文档中似乎没有描述此选项。它有什么作用?有什么影响?我注意到构建大小减少了(按 KB 顺序)。

kotlin

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