SORU
12 AĞUSTOS 2013, PAZARTESİ


Durum oluşturduğunda 8 Lambda işlevi, Java?

String bir parametre vardır ve bir int döndüren bir yöntem için bir başvuru oluşturmak için nasıl biliyorum,:

Function<String, Integer>

Ancak, bu işlevi bir özel durum oluşturursa, olarak tanımlanan ki: çalışmıyor

Integer myMethod(String s) throws IOException

Nasıl bu başvuru tanımlayabilir ki?

CEVAP
12 AĞUSTOS 2013, PAZARTESİ


Nasıl bu başvuru tanımlayabilir ki?

Edemezsin. Aşağıdakilerden birini yapmanız gerekir.

Kontrol özel durum bildirir kendi işlevsel arayüzü tanımlayın:

 @FunctionalInterface
 public interface FunctionThatThrows<T, R> {
     R apply(T t) throws IOException;
 }

İşaretli bir istisna beyan etmeyen bir yöntem Integer myMethod(String s) Wrap:

public Integer myWrappedMethod(String s) {
    try {
        return myMethod(s);
    }
    catch(IOException e) {
        throw new RuntimeException(e);
    }
}

ve sonra

Function<String, Integer> f = (String t) -> myWrappedMethod(t);

ya

Function<String, Integer> f =
    (String t) -> {
        try {
            return myMethod(t);
        }
        catch(IOException e) {
            throw new RuntimeException(e);
        }
    };

@assylias Stream<String>.map Function<T, R>, bekleyen başka bir yöntem ile bu kullanmak için çalışıyorsanız, size güzel bir noktaya değindihayırama seçim ve kontrolsüz bir istisna olarak yakalamak için yeniden oluşturma.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013