X-Received: by 10.31.158.195 with SMTP id h186mr5495973vke.7.1485823901763; Mon, 30 Jan 2017 16:51:41 -0800 (PST) X-Received: by 10.157.20.145 with SMTP id d17mr1659910ote.18.1485823901719; Mon, 30 Jan 2017 16:51:41 -0800 (PST) Path: csiph.com!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!216.166.98.84.MISMATCH!border1.nntp.dca1.giganews.com!nntp.giganews.com!i7no946342qta.1!news-out.google.com!15ni6316itm.0!nntp.google.com!r185no1468257ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: de.comp.lang.java Date: Mon, 30 Jan 2017 16:51:41 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.185.252.184; posting-account=VmIUsgkAAABUMV5-gaSlvHjNMDcqojz2 NNTP-Posting-Host: 77.185.252.184 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Algorithmus zum Finden des speziellsten Super-Typ eines multi-catch From: =?UTF-8?Q?Heiner_K=C3=BCcker?= Injection-Date: Tue, 31 Jan 2017 00:51:41 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Lines: 28 Xref: csiph.com de.comp.lang.java:13090 Hallo, ab Java7 kann man beim catch einen Union-Typ notieren: catch ( Exception1 | Exception2 e ) Erlaubt sind nur Ableitungen von java.lang.Throwable. Man kann aber in den Exception-Klassen eigene Interfaces implementieren und der Java-Compiler findet diese, wodurch man Methoden aus diesen Interfaces aufrufen kann. Ich suche einen Algorithmus, der den speziellsten gemeinsamen Typ findet. Das Ergebnis kann ein Intersection-Typ sein, also eine Klasse oder Interfac= e und beliebig viele weitere Interfaces. Man m=C3=BCsste sich an der super- und implements-Hierarchie der Exception-= Klassen rekursiv hocharbeiten. Eine Idee w=C3=A4re, die Schnittmenge aller erweiterten Klassen und Interfa= ces zu bilden. Dann hat man aber immer noch weniger spezielle Ober-Typen in der Schnittmen= ge. Ich bin dankbar f=C3=BCr alle Ideen. Heiner