我有一个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>>>.
如何停用Delphi的"超出行尾的光标"功能?当我单击一行右侧的空白区域时,或者当我使用箭头键导航到一行时,我希望光标位于该行的实际末尾,而不是"虚拟空间".
GitHub 可以做到这一点,但我无法在 GitLab 上找到相同的内容。
GitLab 目前支持此功能吗?
编辑:我只是不知道为什么,但更改检测在层次结构中的第一个孩子处停止。如果我手动调用更深一层(在 中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表达式被添加到FormGroup的FormControl。
里面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) 最初我在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 11构建应用程序。
但是,下拉菜单在Java 9处停止。
我该怎么办?OpenJDK也可以接受。
我正在使用最新版本的Jenkins。
编辑:到目前为止,我已经使用下载了二进制文件wget,将其提取到计算机上,并JDK_HOME通过Global Configurations 添加了JDK 条目。
我刚开始使用那些 IntelliJ IDEA Java 注释,但我不明白什么时候应该使用它们,特别是因为 IDEA 大部分时间都能够推断它们。
你们遵守某种规则吗?我不希望看到每个参数或字段都用它们注释,代码可能会变得一团糟。
我知道这可以被认为是基于意见的,但我仍然想阅读答案。
我在Visual Studio上使用\ W4警告级别,而我正在编写Windows程序.
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
Run Code Online (Sandbox Code Playgroud)
我的应用程序中没有使用所有这些参数,因此我在编译时收到警告.
我知道有两种方法可以解决这个问题:
HINSTANCE /*hInstance*/......使用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)哪一个是正确的?哪一个更安全?使用宏有什么问题吗?
使用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) 从 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 顺序)。
java ×4
kotlin ×2
angular ×1
annotations ×1
c++ ×1
c++builder ×1
delphi ×1
field ×1
final ×1
generics ×1
gitlab ×1
ide ×1
java-11 ×1
java-stream ×1
jenkins ×1
macros ×1
parameters ×1