Anonyme Methode
lima-city → Forum → Programmiersprachen → Java
art
code
double
entfernten server
folgende methode
funktionierenden testfall
guter anlaufpunkt
information
kontinuierlich daten
leeren string
legen
machen
methode
null
objekt
string
super allgemeinen methoden
typ
url
zweck
-
Hab noch eine Frage. Kann man eine Methode erstellen, die ein Double oder einen String zurück geben kann?
Wollte folgende Methode machen, die leider nicht das macht was ich möchte.
Wenn das Objekt Null ist und seine Klasse ein String, dann soll " " zurückgegeben werden.
Wenn die Klasse vom Typ Double war, wird 0.0 zurückgegeben.
Ansonsten wird das Objekt zurückgegeben, welches ein Double oder ein String sein kann.
data1 und 2 können beide nur String oder Double sein.
private Object[] nullTester(Object data1, Object data2) { Object d1 = (data1 != null ? data1 : (data1 instanceof String) ? " " : 0.0); Object d2 = data2 != null ? data2 : (data2 instanceof String ? " " : 0.0); return new Object[] {d1, d2}; }
Beitrag zuletzt geändert: 11.11.2010 0:41:05 von cglabs -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Sowas ist Käse.
Du wilslt so sehr wie möglich typisieren und nicht solche super allgemeinen methoden erzeugen.
Wüsste auch nicht welchen Zweck ein solcher nullTester erfüllen sollte. -
Das kann gar nicht funktionieren. 0.0 ist ein primitiver Wert. Dieser ist kein Objekt, kann also kein Nachfolger der Klasse Object sein. Es ist aber möglich, einen Float, oder einen andern primären Typ als Objekt an zu legen.
-
Ich habe mal einen funktionierenden Testfall aufgebaut. Es funktioniert, wenn der Double Wert einen Wert hat oder null ist und wenn der String Wert einen Wert hat oder "" (leer) ist. Leider wird für String = null die 0.0 ausgegeben, erwartet habe ich aber "". Normal sollte doch instanceOf einer Methode, die ein String als Rückgabe hat String sein oO.
Wüsste auch nicht welchen Zweck ein solcher nullTester erfüllen sollte.
Ein Programm ließt kontinuierlich Daten von einem entfernten Server, manchmal kommt es vor, dass ein bestimmter Wert nicht vorhanden ist und als null ankommt. In dem Fall ist der Tabelleneintrag einfach nicht belegt. Da man in der Tabelle keine Einträge mit null sortieren kann möchte ich da automatisiert entweder einen leeren String oder 0.0 eintragen.
Ich glaube ich komme nicht um 2-Methoden herum. Kann dann leider nicht mehr automatisch entscheiden wann welche benutzt werden soll. :(
Mein ultimativer NullTest.
public class Test { public static class NullClass{ public static String retStrig() { return null; } public static Double retDouble() { return null; } } private static Object[] nullTester(Object data1, Object data2) { Double d = 0.0; String s = " "; Object d1 = (data1 != null ? data1 : (data1 instanceof String) ? s : d); Object d2 = data2 != null ? data2 : (data2 instanceof String ? s : d); return new Object[] {d1, d2}; } public static void main(String[] args) { System.out.println(nullTester(NullClass.retStrig(), "")[0]); } }
Was ich hier eigentlich versuche ist, die Klasse/Typ einer Methode herauszufinden, die null zurück gibt. Ob das überhaupt möglich ist :)?
Beitrag zuletzt geändert: 11.11.2010 10:54:29 von cglabs -
Moin,
für diese Art von Klassenanalyse nutzt man Reflections.
Damit kannst Du Klassen, Methoden, Variablen, etc. bis auf's Kleinste zerlegen und Informationen sammeln.
Ein guter Anlaufpunkt ist wie immer das Java Tutorial:
http://download.oracle.com/javase/tutorial/reflect/member/methodType.html
Gruß,
Pawnee -
Dankeschön, das klingt schon mal gut :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage