小编Ram*_*nSB的帖子

forEach 参数与Consumer 功能接口参数不匹配但代码仍然编译,为什么?

我正在为 OCP 考试而学习,我注意到以下代码片段,其中在 DoubleStream 上调用的 forEach 方法的参数必须与 DoubleConsumer 函数接口的参数匹配,但是 lambda 与所需的类型不匹配,为什么它仍然编译?

  DoubleStream.of(3.14159, 2.71828)
    .forEach(c -> service.submit(
      () -> System.out.println(10*c)
    ));
Run Code Online (Sandbox Code Playgroud)

DoubleConsumer(接受 Double 类型的参数并返回 void 类型),但是这个 forEach 的返回类型为Future<?>where ?表示 Runnable lambda 的返回类型,它是 void,Future - 这不是 void。我这么说是因为 service.submit(...) 的返回类型Future<?>不是 void,为什么这段代码会编译?

java concurrency lambda return-type executor

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

java Imports如何工作(swing)?

所以我尝试创建一个空边框,并且需要导入javax.swing.border.EmptyBorder;

但是我已经导入了javax.swing.*;

为什么我需要导入先前的导入?不是.*从swing包中导入所有东西.

我的源代码如下:

   import javax.swing.*;
   import javax.swing.border.EmptyBorder;

   import java.awt.*;
  /*
public class Gui extends JFrame {

//row1
JPanel row1 = new JPanel();
JButton reset = new JButton("Reset");
JButton play = new JButton("Play");

//row2
JPanel row2 = new JPanel();
JLabel option = new JLabel("Guess: ", JLabel.RIGHT);
JTextField text1 = new JTextField("0");
JTextField text2 = new JTextField("0");
JTextField text3 = new JTextField("0");

//row3
JPanel row3 = new JPanel();
JLabel answerL = new JLabel("Answer: ", JLabel.RIGHT);
JTextField answerB = new JTextField("", 0); …
Run Code Online (Sandbox Code Playgroud)

java import user-interface swing package

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

Flutter TabBarView 子项由于高度无界而无法渲染

我正在尝试复制以下设计:

https://lh3.googleusercontent.com/pOGNNz2MYFZg24jd7Yf55mLXFRWIYMCNQSUshnPX6P2iYsMQn8bkezdp8tQD-Y9GcD0=w2560-h1370

我似乎不明白为什么我的子小部件TabBarView会导致异常。提到了无限高度,但我已经提供了子部件的高度和宽度,所以我对发生的事情感到困惑......

仅供参考:TripPage小部件(代码中未显示,仅显示其状态)作为值传递给 a 的 body 属性Scaffold(也未显示)。我不想改变这一点。

这是我的代码:

class _TripPageState extends State<TripPage> {
  //ToDo: Keep as dynamic until an object is created for the listItems.
  List<dynamic> upcomingTrips;
  List<dynamic> pastTrips;

  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Row(mainAxisAlignment: MainAxisAlignment.start, children: <Widget>[
          Padding(
            child: Text(
              "Trips",
              style: TextStyle(
                  color: Colors.deepPurple,
                  fontSize: 36.0,
                  fontWeight: FontWeight.bold),
            ),
            padding: EdgeInsets.only(top: 40.0, left: 28.0),
          )
        ]),
        DefaultTabController(
          length: 2,
          child: Column(mainAxisSize: MainAxisSize.max, children: <Widget>[
            Padding(
                padding: EdgeInsets.only(left: 16.0, …
Run Code Online (Sandbox Code Playgroud)

user-interface tabbar uitabcontroller dart flutter

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

为什么Sliver App Bar的flexibleSpace参数必须采用带有const构造函数的Widget?

我正在尝试构建一个自定义滚动视图,其中包含一个条子应用程序栏,以实现与此处显示的类似的效果:

https://medium.com/@diegovoper/flutter-collapsing-toolbar-sliver-app-bar-14b858e87abe

然而,我想要有“搜索”一词,在它下面我想要 3 个均匀分布的图标按钮,当页面(CustomScrollView)滚动时,我希望将 3 个图标按钮固定到 SliverAppBar 的顶部,并且搜索文本消失...

我尝试通过以下代码实现上述目标:

 class SearchPage extends StatelessWidget {

      const SearchPage();

      @override
      Widget build(BuildContext context) {
        return CustomScrollView(slivers: <Widget>[
        const SliverAppBar(
        pinned: true,
            expandedHeight: 250.0,
            flexibleSpace: _buildSliverAppBarFlex(),
            );
      }


       Widget _buildSliverAppBarFlex() {
        return Container(
            child: Column(
              children: <Widget>[
                Text("Search", style: TextStyle(fontSize: 24.0,
                    color: Colors.white,
                    fontWeight: FontWeight.bold)),
                Row(children: <Widget>[
                  IconButton(icon: Icon(Icons.flight)),
                  IconButton(icon: Icon(Icons.hotel)),
                  IconButton(icon: Icon(Icons.drive_eta))
                ])
              ],
            )
        );
      }
    }
Run Code Online (Sandbox Code Playgroud)

然而,我收到一条警告,称FlexibleSpace必须采用const构造函数小部件,而我制作的_buildSilverAppBarFlex小部件则不是——我也无法向其中添加const或final...有什么想法可以实现我想要的吗?

flutter flutter-sliver

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