小编kea*_*nni的帖子

Stream.findFirst与Optional.of不同?

可以说我有两个类和两个方法:

class Scratch {
    private class A{}
    private class B extends A{}

    public Optional<A> getItems(List<String> items){
        return items.stream()
             .map(s -> new B())
             .findFirst();
    }

    public Optional<A> getItems2(List<String> items){
        return Optional.of(
            items.stream()
                 .map(s -> new B())
                 .findFirst()
                 .get()
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么getItems2编译时getItems会出现编译器错误

incompatible types: java.util.Optional<Scratch.B> cannot be converted to java.util.Optional<Scratch.A>
Run Code Online (Sandbox Code Playgroud)

所以,当我返回get的值和使用编译器再次包装它时,会识别继承,但如果我直接使用结果,则不会.OptionalfindFirstOptional.offindFirst

java optional java-stream

21
推荐指数
3
解决办法
793
查看次数

如何在哈斯存储哈希哈希?

我想知道,在Moose中存储哈希哈希的最佳方法是什么.让我们举一个像这样的Hash:

my %hash = ('step1' => {'extraction' => \$object1,
                         'analysis' => \$object2},
            'step2' => {'extraction' => \$object3,
                         'analysis' => \$object4});
Run Code Online (Sandbox Code Playgroud)

但我想将这个保存在驼鹿属性中.我该如何组织访问(阅读,写作).网上的例子主要是"扁平"哈希.但是你可以使用像Moose :: Meta :: Attribute :: Native :: Trait :: Hash这样的助手.哈希散列有类似的东西吗?

原因是,我想迭代步骤键并访问其中的对象实例.或者是否有更好的,更像Moose的方式来做到这一点?

提前致谢!!!

perl moose hash-of-hashes

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

JavaFX:使用FXML按行(在网格窗格中)组织控件

我有一个带有很多控件的GUI(标签,文本字段,组合框和复选框).我在Gridpane中组织它们并希望将它们放在行和列中(就像它用于gridpane布局一样).

如果我使用FXML,我会这样写:

<GridPane>
   <Label GridPane.rowIndex="0" GridPane.columnIndex="0" text="field1"/>
   <TextField GridPane.rowIndex="0" GridPane.columnIndex="1"/>
   <Label GridPane.rowIndex="1" GridPane.columnIndex="0" text="field2"/>
   <TextField GridPane.rowIndex="1" GridPane.columnIndex="1"/>
</GridPane>
Run Code Online (Sandbox Code Playgroud)

现在问题:如果我想在第0行和第1行之间添加一行,我需要增加下一行的行索引.现在让我们取20行和5列,我想在第一行之后添加一行.这对我来说可以为第一个下面的每一行增加rownumber.

有没有类似行元素的东西,它的子控件在同一行中随着列数的增加而定位?我想到这样的事情:

<GridPane>
   <GridPane.Row>
       <Label text="field1"/>
       <TextField/>
   </GridPane.Row>
   <GridPane.Row>
       <Label text="field2"/>
       <TextField/>
   </GridPane.Row>
</GridPane>
Run Code Online (Sandbox Code Playgroud)

我知道VBox和HBox,这几乎是我想要的,但我希望在固定宽度的列中有元素.

javafx fxml gridpane

2
推荐指数
1
解决办法
2018
查看次数

标签 统计

fxml ×1

gridpane ×1

hash-of-hashes ×1

java ×1

java-stream ×1

javafx ×1

moose ×1

optional ×1

perl ×1