簡體   English   中英

流:無法從流轉換<Object>

[英]Stream of Stream: cannot convert from Stream<Object>

目的是調用具有流中所有元素的函數。

我遇到的問題更加復雜,但是我設法用此簡單的代碼重現了問題。

使用以下代碼,我得到此錯誤:

 Type mismatch: cannot convert from Stream<Object> to Stream<Integer>



    import java.util.List;
    import java.util.stream.Stream;

    class Ideone
    {
        public class A {
            String a = "a";
            List<B> bList;
        }


        public class B {
            String b = "b";
            List<String> urls;
        }


        public Stream<Integer> getResult (String a, String b, String url) {
            System.out.println("Bingo!");
            return Stream.empty();
        }



        public static void main (String[] args) throws java.lang.Exception
        {
            A a = new A();
           Stream<Integer> rez = a.bList.stream().map(b -> b.urls.stream().map(u -> getResult(a.a, b.b, u)));
        }
    }

更換

a.bList.stream().map(...)

a.bList.stream().flatMap(...)

轉換List的stream<object> 列表中所有對象的 stream<div id="text_translate"><p> 以下 lambda 表達式采用 HashMap 的值,在其 ArrayList 中獲取對象列表,將所有此類對象添加到另一個 ArrayList,然后在滿足條件時打印每個屬性。</p><p> 這行得通,但我有點沮喪,我不知道如何一步完成,就像不使用兩個 lambda 表達式一樣。</p><pre> Map<Integer, Person> people = new HashMap<Integer, Person>(); ... List<Object> objects = new ArrayList<Object>(); people.values().stream().map(p->p.getObjects()).forEach(p->objects.addAll(p)); //note: can be multiple objects.stream().filter(p->p.getClass().toString().contains("Keyword")).forEach(p->System.out.println(p.display()));</pre><p> 那么有沒有一種方法可以將 go 從第 2 行直接轉到第 5 行,這實際上會將對象列表的 stream 轉換為所有對象本身的 stream?</p></div></object>

[英]Convert stream of List<Object> to stream of all Objects in the List

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM