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


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

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

Newsgroups de.comp.lang.java
Date 2017-01-31 11:24 -0800
References (1 earlier) <c689a210-367e-4c9c-97f8-6ec9e316ff9c@googlegroups.com> <o6pnoh$udl$1@newsreader4.netcologne.de> <o6pplt$4tf$1@news-aesculus.fernuni-hagen.de> <a8ce6a6b-92fb-4cdb-888c-3e8311f703f6@googlegroups.com> <o6qmns$dqa$1@news-aesculus.fernuni-hagen.de>
Message-ID <949e63f2-ccbf-4b18-a201-af098a6df216@googlegroups.com> (permalink)
Subject Re: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch
From Heiner Kücker <mail@heinerkuecker.de>

Show all headers | View raw


Es schrieb Michael Paap:
> Hm, als Erklärung der Begriffe ko- bzw. kontravariant kann ich das grad
> nicht so recht empfinden. Zumal man dazu genau genommen eigentlich erst
> mal den Bezug der "Varianz" benennen müsste.

Ich finde es plausibel.

Mit Varianz ist der Typ/Klasse/Interface gemeint.

> Normalerweise hat man diese Begriffe ja im Kontext des Überschreibens
> von Methoden in Subtypen, wobei bzgl. des Rückgabetyps nur Kovarianz mit
> dem LSP logisch vereinbar ist, bzgl. der Parametertypen nur
> Kontravarianz (die dort niemand benötigt und die Java auch nicht erlaubt).

Rückgabewerte kann man nur Lesen (kovarian).

Parameter kann man nur Schreiben (kontravariant).

Passt alles.

> > Also ist
> > 
> > ? extends X
> > 
> > eine mathematisch verklausulierte Schreibweise für nur-Lesen sowie
> > 
> > ? super X
> > 
> > eine mathematisch verklausulierte Schreibweise für nur-Schreiben.
> 
> Das liest man zwar gerne mal, es ist aber mindestens stark verkürzt.
> Schau dir in folgendem Beispiel mal an, an welchen Stellen es hier
> Compilerfehler gibt, und an welchen nicht. Es sind welche dabei, die
> nicht zu deiner "Regel" passen. Weswegen ich die Regel auch nicht mag. ;-)
> 
> ---------------------------------------------------
> import java.util.*;
> 
> public class WildcardTest {
>     public static void main(String[] args) {
>         List<?> liste1 = null;
>         liste1.add(new Object());
>         liste1.add(new Tier());
>         liste1.add(new Vogel());
>         Object o1 = liste1.get(0);
>         Tier t1 = liste1.get(0);
>         Vogel v1 = liste1.get(0);
> 
>         List<? extends Tier> liste2 = null;
>         liste2.add(new Object());
>         liste2.add(new Tier());
>         liste2.add(new Vogel());
>         Tier t2 = liste2.get(0);
>         Object o2 = liste2.get(0);
>         Vogel v2 = liste2.get(0);
> 
>         List<? super Vogel> liste3 = null;
>         liste3.add(new Object());
>         liste3.add(new Tier());
>         liste3.add(new Vogel());
>         Object o3 = liste3.get(0);
>         Tier t3 = liste3.get(0);
>         Vogel v3 = liste3.get(0);
>     }
> }
> 
> class Tier {}
> 
> class Vogel extends Tier {}
> 
> class Amsel extends Vogel {}
> ---------------------------------------------------
> 
> Gruß,
> Michael

Die Compiler-Fehler passen, ausser bei

Object o* = liste*.get(0);

Nun ja, ein Object ist eben immer.

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