Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.java > #13096

Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch

X-Received by 10.99.238.18 with SMTP id e18mr9203703pgi.39.1485884315951; Tue, 31 Jan 2017 09:38:35 -0800 (PST)
X-Received by 10.157.34.34 with SMTP id o31mr2005472ota.13.1485884315905; Tue, 31 Jan 2017 09:38:35 -0800 (PST)
Path csiph.com!weretis.net!feeder6.news.weretis.net!news.glorb.com!r185no1642135ita.0!news-out.google.com!15ni10148itm.0!nntp.google.com!r185no1639413ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups de.comp.lang.java
Date Tue, 31 Jan 2017 09:38:35 -0800 (PST)
In-Reply-To <o6pplt$4tf$1@news-aesculus.fernuni-hagen.de>
Complaints-To groups-abuse@google.com
Injection-Info glegroupsg2000goo.googlegroups.com; posting-host=77.185.207.175; posting-account=VmIUsgkAAABUMV5-gaSlvHjNMDcqojz2
NNTP-Posting-Host 77.185.207.175
References <da729f39-9df8-4d89-9689-c2c19949a437@googlegroups.com> <c689a210-367e-4c9c-97f8-6ec9e316ff9c@googlegroups.com> <o6pnoh$udl$1@newsreader4.netcologne.de> <o6pplt$4tf$1@news-aesculus.fernuni-hagen.de>
User-Agent G2/1.0
MIME-Version 1.0
Message-ID <a8ce6a6b-92fb-4cdb-888c-3e8311f703f6@googlegroups.com> (permalink)
Subject Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch
From Heiner Kücker <mail@heinerkuecker.de>
Injection-Date Tue, 31 Jan 2017 17:38:35 +0000
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding quoted-printable
Xref csiph.com de.comp.lang.java:13096

Show key headers only | View raw


Am Dienstag, 31. Januar 2017 11:44:02 UTC+1 schrieb Michael Paap:
> "Punktuell covariant" ist nett ausgedückt. Aber naja, das sind sie ja in
> einem gewissen Sinne auch. Mit dem Preis, dass man in Fällen wie diesen
> die Wildcards am Hals hat.

Ich schreibe hier mal was zur Erklärung kovariant/kontravariant:


Kovariant wird geschrieben als

? extends X


Kontravariant wird geschrieben als

? super X


Ziemlich unverständlich, was soll das bedeuten?

Nehmen wir mal eine Hierarchie von drei Klassen an:

class A {}

class B extends A {}

class C extends B {}


Wenn wir kovariant schreiben:

? extends A

dann darf dort A, B oder C stehen.

Dies verwenden wir in einer Zuweisung:

A = ? extends A

entspricht

A = A oder
A = B oder
A = C

Alles erlaubt, zuweisungs-kompatibel.


Jetzt mal andersherum:

? extends A = A

entspricht

A = A oder
B = A oder
C = A

Die zweite und dritte Zeile ist nicht erlaubt, nicht zuweisungs-kompatibel.

Das bedeutet,

? extends X

darf in einer Zuweisung nur rechts stehen, nur gelesen werden.


Jetzt das Ganze kontravariant:

Wenn wir kontravariant schreiben:

? super C

dann darf dort A, B oder C stehen.

Dies verwenden wir in einer Zuweisung:

? super C = C

entspricht

C = C oder
B = C oder
A = C

Alles erlaubt, zuweisungs-kompatibel.


Jetzt mal andersherum:

C = ? super C

entspricht

C = C oder
C = B oder
C = A

Die zweite und dritte Zeile ist nicht erlaubt, nicht zuweisungs-kompatibel.


Das bedeutet,

? super X

darf in einer Zuweisung nur links stehen, nur geschrieben werden.


Also ist

? extends X

eine mathematisch verklausulierte Schreibweise für nur-Lesen sowie

? super X

eine mathematisch verklausulierte Schreibweise für nur-Schreiben.


Im konkreten Beispiel des multi-catch mit "Punktuell kovariant" darf ein T-Wert eben nur gelesen werden.


Gruesse
Heiner

Back to de.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-30 16:51 -0800
  Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-31 00:48 -0800
    Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Patrick Roemer <sangamon@netcologne.de> - 2017-01-31 11:09 +0100
      Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Michael Paap <feunews@mpaap.de> - 2017-01-31 11:42 +0100
        Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-31 09:38 -0800
          Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Michael Paap <feunews@mpaap.de> - 2017-01-31 19:58 +0100
            Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-31 11:24 -0800
              Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Michael Paap <feunews@mpaap.de> - 2017-01-31 20:33 +0100
      Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-31 08:26 -0800
        Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-31 08:29 -0800
        Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Michael Paap <feunews@mpaap.de> - 2017-01-31 20:26 +0100
          Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch Heiner Kücker <mail@heinerkuecker.de> - 2017-01-31 14:33 -0800

csiph-web