[問題] java 觀念請益
主要是來自於這個問題以及 github
https://stackoverflow.com/questions/32209248/java-util-stream-with-resultset
https://github.com/claudemartin/streamed-sql
在 Example.java 中
...
strsql.stream("SELECT * FROM FOO WHERE NAME LIKE 'L%' ORDER BY NAME", Foo::o
f))
...
這個
Foo::of 是建構式參考
但在 StreamedSQL.java 中 strsql.stream() 這個方法簽署傳入的是介面
public <T> Stream<T> stream(final String query, final ResultSetMapper<T> map
per) throws SQLException {
return stream(this.getDefConn(), query, mapper);
}
只知道靜態方法簽署中參數與回傳值相同所以可使用建構式參考
但不清楚為何傳入的是 ResultSetMapper 介面
以及從何得知T的實際型態為 Foo
另外 Foo::of 可以改用 lambda 寫嗎
謝謝
----
Sent from BePTT
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.97.104 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/java/M.1612480872.A.ECB.html
→
02/05 09:30,
3年前
, 1F
02/05 09:30, 1F
→
02/05 09:34,
3年前
, 2F
02/05 09:34, 2F
→
02/05 09:37,
3年前
, 3F
02/05 09:37, 3F
→
02/05 09:37,
3年前
, 4F
02/05 09:37, 4F
→
02/05 09:38,
3年前
, 5F
02/05 09:38, 5F
→
02/06 04:24,
3年前
, 6F
02/06 04:24, 6F
不要用 lambda 寫反而很清楚
謝謝
....
try (final var conn = initDB()) {
final var strsql = StreamedSQL.create(conn, true);
try (Stream<Foo> stream = strsql.stream("select ... ", new ResultSetMapper<Foo>(){
@Override
public Foo map(ResultSet rs) throws SQLException{
return Foo.of(rs);
}
})) {
stream.filter(....);
}
}
....
※ 編輯: SongIceFire (223.136.97.104 臺灣), 02/06/2021 13:00:10
java 近期熱門文章
PTT數位生活區 即時熱門文章