"अनुचित अवरुद्ध विधि कॉल" जब एक StringBuilder एक और appends

0

सवाल

क्यों IntelliJ विचार दिखाने की चेतावनी "अनुचित अवरुद्ध विधि कॉल" जब एक StringBuilder appends एक और?

public Mono<String> doSomethingReactive() {
    final StringBuilder sb1 = new StringBuilder("hello");
    final StringBuilder sb2 = new StringBuilder("world");
    sb1.append(sb2); // This append() causes warning "Inappropriate blocking method call"
    sb1.append(sb2.toString()); // ... but this append() is OK :)
    return Mono.just(sb1.toString());
}
2
0

मैं यह संदेह में एक बग है IntelliJ विचार है, जब तक कि किसी के साथ आता है, एक उचित व्याख्या की है । देखें https://youtrack.jetbrains.com/issue/IDEA-282947

2021-11-19 11:55:19
0

मुझे लगता है कि यह अवरुद्ध है, तो शायद यही कारण है कि इंटेलीजे शिकायत है. जब से तुम पैदा कर रहे हैं मोनो के अंत में विधि आता है कि सब कुछ है कि इससे पहले कि निष्पादित किया जाता है से पहले या बाहर की मोनो प्रवाह. यह उद्देश्य धरा की एक प्रतिक्रियाशील प्रवाह. अगर मैं डाल मोनो शीर्ष पर तो कोई चेतावनी:

public Mono<String> doSomethingReactive() {
    return Mono.just(new StringBuilder("hello"))
            .map(sb1 -> {
                StringBuilder sb2 = new StringBuilder("world");
                sb1.append(sb2);
                sb1.append(sb2.toString());
                return sb1.toString();
            });
}

इस मामले में केवल पहले के निर्माण StringBuilder मार डाला है के बाहर मोनो प्रवाह.

भी, आप मन, मुझे लगता है कि इंटेलीजे लगता है कि हो सकता है कि sb1.append(sb2) बुला रहा है वस्तु::toString() हो सकता है, जो अच्छी तरह से अवरुद्ध हो जाता है जब यह कैशिंग वर्ग के नाम में VM जबकि sb1.append(sb2.toString()) कहा जाता है StringBuilder::toString() हो सकता है जो किसी भी नहीं अवरुद्ध ।

2021-11-19 13:17:47

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में