Vavr Try.withResources - co zrobić gdy wynikiem operacji jest Try<Try<T>>

0
    fun test(elements: Array<Object>): Try<ByteArray> =
            Try.withResources { ByteArrayOutputStream() }
                    .of { output ->
                        Try.withResources { SomeObjectOutputStream(output) }
                                  .of { someOutput ->
                                       someOutput.writeObject(elements)
                                       output.toByteArray()
                        }
                    }.flatMap { it }

Czy da się to ładniej rozwiązać niż flatMap { it }?
Czy może jest jakaś opcja, żeby całość lepiej zapisać?

3
fun test(elements: Array<Any>): Try<ByteArray> = Try.of {
    ByteArrayOutputStream().use { output ->
        SomeObjectOutputStream(output).use { someOutput ->
            someOutput.writeObject(elements)
            output.toByteArray()
        }
    }
}

Jeszcze pytanie czy w ogóle ten Try jest potrzebny? W sensie: jakoś sensownie możesz obsłużyć ewentualny błąd? (a to zależy od tego co robi Twój program)

0
jarekr000000 napisał(a):
fun test(elements: Array<Any>): Try<ByteArray> = Try.of {
    ByteArrayOutputStream().use { output ->
        SomeObjectOutputStream(output).use { someOutput ->
            someOutput.writeObject(elements)
            output.toByteArray()
        }
    }
}

Jeszcze pytanie czy w ogóle ten Try jest potrzebny? W sensie: jakoś sensownie możesz obsłużyć ewentualny błąd? (a to zależy od tego co robi Twój program)

Po krótkim zastanowieniu, stwierdziłem, że gdy się to wywali i tak nie będę miał jak tego sensownie obslużyć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1