让我们说这是我的班级。我想要除日期之外的所有字段的 getter 和 setter。有办法排除吗?
@Data
public class User {
String first;
String last;
String email;
Date dob;
Boolean active;
}
Run Code Online (Sandbox Code Playgroud) 在网络中,我发现只有一种方法可以停止迭代方法.通过使用limit()函数.但是,这会迭代一个混合的循环.我想用来停止一个谓词.
...
Stream.iterate(0, i -> i*2).while(i -> i < MAX)
...
Run Code Online (Sandbox Code Playgroud)
有没有办法用Streams做到这一点?
更新1:使用Java 8
我有一个可选的.
Optional<AssetEvent> latestEvent = ...
Run Code Online (Sandbox Code Playgroud)
我想从事件内部添加一个字段到列表(如果存在).
latestEvent.map(event -> event.getTimestamp()).ifPresent(latestList::add);
Run Code Online (Sandbox Code Playgroud)
我的IDE(Intelij)向我展示了"Lambda可以替换为方法引用" event.getTimestamp()
重构为
latestEvent.map(this::getTimestamp).ifPresent(latestList::add);
Run Code Online (Sandbox Code Playgroud)
给我一个错误,因为this将在代码执行的内容中引用周围的Object.我如何在Optional中引用Object的方法latestEvent
我的Intelij告诉我,我可以用.filter(bean -> bean != null)方法引用替换lambda .当我有一个类或一个带方法的对象时,对我来说,如何做到这一点是很明智的.但是如何进行参考!= null,是否有一种具有某种isNull()方法的类?
我想构建一个生成2列表的sql,其中第一个是一系列时间戳,第二个是提供值的functon。例如这里是random()。但是随机函数在整个表中始终为我提供相同的值,我希望有所不同。如何解决?
SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
'2008-03-05 12:00',
'1 day') as ts, random() as value;
Run Code Online (Sandbox Code Playgroud)
生成表:
"2008-03-01 00:00:00";0.816707271616906
"2008-03-02 00:00:00";0.816707271616906
"2008-03-03 00:00:00";0.816707271616906
"2008-03-04 00:00:00";0.816707271616906
"2008-03-05 00:00:00";0.816707271616906
Run Code Online (Sandbox Code Playgroud)