小编eva*_*van的帖子

如何转换 for 循环以找到 Java 流的第一次出现?

我有以下可以正常工作的代码

for (UniversityClass class : allClasses)
    {
        Period<Date> classDate = class.getClassDates();
        if (classDate.start().before(classEndDate)
                && classDate.end().after(classBeginDate))
        {
            classBooked = true;
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我试过这个:

allClasses.stream().filter(class -> {
            Period<Date> classDate = class.getClassDates();
            if (classDate.start().before(classEndDate)
                && classDate.end().after(classBeginDate))

            return true;
        }).findFirst().ifPresent($ -> {
            classBooked = true;
        });
Run Code Online (Sandbox Code Playgroud)

但这会引发添加 return 语句。此外,该classBooked变量需要声明为 final,但这是不可能的。正在做的错误是什么?

此外,一旦为真,我就需要break从它。这就是为什么我想到添加 findFirst().ifPresent()

java java-stream

14
推荐指数
3
解决办法
180
查看次数

如何从 SQL 中的连接中删除重复的列

我有以下代码

SELECT * 
FROM customer
INNER JOIN
    (SELECT   
         customerid, newspapername, enddate, n.publishedby 
     FROM
         newspapersubscription ns, newspaper n 
     WHERE 
         publishedby IN (SELECT publishedby 
                         FROM newspaper 
                         WHERE ns.newspapername = n.NewspaperName)
UNION

SELECT
    customerid, Magazinename, enddate, m.publishedby 
FROM
    magazinesubscription ms, magazine m 
WHERE
    publishedby IN (SELECT publishedby 
                    FROM magazine 
                    WHERE ms.Magazinename = m.MagazineName)) ON customer.customerid = customerid
ORDER BY 
    customer.customerid;
Run Code Online (Sandbox Code Playgroud)

客户表有以下内容:

 customerid | customername | customersaddress
Run Code Online (Sandbox Code Playgroud)

此查询返回以下结果:

customerid | customername | customersaddress | customerid | newspapername | enddate| publishedby
Run Code Online (Sandbox Code Playgroud)

我真正想要的是

customerid | customername …
Run Code Online (Sandbox Code Playgroud)

sql oracle

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

如何在 Firebase for Android 中获取根节点的子节点

我有以下树结构

[1]

我需要单独获取信息名称和详细信息以及他们的孩子。

我已经这样做了,但在执行时不运行并关闭应用程序:

info = FirebaseDatabase.getInstance().getReference();
        info.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot infoSnapshot: dataSnapshot.getChildren()) {
                    Log.i(TAG, infoSnapshot.child(info.toString()).getValue(String.class));
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.i(TAG, "onCancelled", databaseError.toException());
            }
        });
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

android firebase firebase-realtime-database

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

如何使用 Jest 和 Enzyme 在 React 中测试 OnSubmit

我有以下onSubmit功能代码

handleSubmit(event) {
    event.preventDefault();

    this.setState({ isDone: true });

    const nameMatch= () => {
      return !(this.state.firstName.match("^Cel.*") && this.state.firstName.endsWith("on"))
    }
    if (nameMatch()) {
      alert("Please enter a valid name");
      return;
    }

    if (!this.state.lastName.endsWith("on")) {
      alert("check lastname too");
      return;
    }
    this.getFullName();

}
Run Code Online (Sandbox Code Playgroud)

为了运行上面的测试,我这样做:

it('check submit', () => {
    wrapper.handleSubmit({preventDefault: () => {}});
    console.log(wrapper.handleSubmit());
});
Run Code Online (Sandbox Code Playgroud)

在此,我需要名字和姓氏的状态。我如何在测试用例中做到这一点?如何将它们作为参数传递给测试?

javascript reactjs jestjs enzyme

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