Wie kann man das verkürzen?

Status
Nicht offen für weitere Antworten.

oldshoe

Bekanntes Mitglied
Hallo werte Java-Freunde, schon öfters hatte ich Funktionen wie die angezeigte.

Es geht halt darum, dass die Funktion je nach Eingabe entweder auf ein Page-Objekt oder ein BlogPost-Objekt ausgeführt wird.
Irgendwie muss sich sowas doch verkürzen lassen. Ich habe auch schon mal versucht die Page Objekte z.B. mit null zu übergeben und diesbzgl. die if-Bedingung umzuschreiben um den pageIndikator zu sparen, aber das funktioniert irgendwie nicht.
(Ich weiß ich habe keine Generics verwendet und bitte dies zu ignorieren.)

Java:
public void confluenceSolution(Page page, BlogPost news, boolean pageIndikator){
		
		List OutgoingLinksList;
		
		if (pageIndikator){
			OutgoingLinksList = page.getOutgoingLinks();
		}else{
			OutgoingLinksList = news.getOutgoingLinks();
		}
 

diggaa1984

Top Contributor
wenn blogpost und page nen gemeinsames interface oder oberklasse hätten würde es gehen, denn dann könntest du die genutzte methode dort spezifizieren und würdest einfach nur den Typ der Oberklassen/des Interfaces als Parameter angeben
 

Landei

Top Contributor
Java:
public void confluenceSolution(Page page, BlogPost news, boolean pageIndikator){
        
        List OutgoingLinksList = (pageIndikator) ? page.getOutgoingLinks() : news.getOutgoingLinks();
 

ARadauer

Top Contributor
das meinst du nicht oder?

Java:
 List OutgoingLinksList= pageIndikator?page.getOutgoingLinks():news.getOutgoingLinks();
 

oldshoe

Bekanntes Mitglied
ich glaube die letzten vorschläge funktionieren noch nicht bei java 1.4
Was wäre denn ein Stichwort um nach solchen Anweisungen zu suchen?

aber eigentlich meinte ich irgendwie den pageindikator wegzulassen, also evtl. wirklich der interface-ansatz
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben