PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Irreste Ausdrücke im Quellcode


ethrandil
2003-03-21, 01:04:42
Hiho,
mir ist gerade aufgefallen, dass ((int[])(Vector.elementAt(1)))[0] eine zulässige Anweisung ist ... ;D
Mehr davon bitte *gg*

Eth

[fürs Proggerforum wars mit zu 'verspielt' ;)]

Marcel
2003-03-21, 01:20:17
if(!((String)((Map)cmbFragetyp.getSelectedItem()).get("id")).equals(hmDataModel.get(FrageDaten.FTID)))


gehört zu den Gründen, weshalb ich Java nicht mag.
(direkt aus dem laufenden Netbeans kopiert, hab nichtmal gescrollt...)

GloomY
2003-03-21, 01:23:39
Mein Klassiker ist immer noch:

(*(void(*)())0)();

:D

El Fantastico
2003-03-21, 08:32:44
Originally posted by Marcel

if(!((String)((Map)cmbFragetyp.getSelectedItem()).get("id")).equals(hmDataModel.get(FrageDaten.FTID)))


gehört zu den Gründen, weshalb ich Java nicht mag.
(direkt aus dem laufenden Netbeans kopiert, hab nichtmal gescrollt...)

Was hat das mit Java zu tun ??? Sowas bekommst Du auch mit anderen Sprachen hin. Kannst ja vereinfachen, wenn Du nicht durchsiehst ;D

x-dragon
2003-03-21, 10:34:50
for i := 0 to 2359 do
for j := 0 to Zeitenliste.Count -1 do
begin
objZ := TZeiten(Zeitenliste.Objects[j]);

if StrToInt(objZ.Uhrzeit) = i then
for k := 0 to 6 do
if objz.Get_Value(103+k) = 1 then
for l := 0 to 4 do
if objz.Get_Value(110+l) = 1 then
for m := 0 to 2 do
if objz.Get_Value(115+m) = 1 then
uhrzeit[l+1,m+1,k+1].Add(objZ.Uhrzeit);
end; Vielleicht nicht ganz so witzig, aber da bastel ich gerade dran rum und 3-dimensionale Array-Stringlisten können ja auch ganz interessant sein :D.

Bei Delphi sind mir solche bekloppten Sachen wie oben leider(?) noch nicht begegnet ... :)

ethrandil
2003-03-21, 12:22:19
Originally posted by X-Dragon
Bei Delphi sind mir solche bekloppten Sachen wie oben leider(?) noch nicht begegnet
Wieso bekloppt? ist doch ganz einfach ;)
((int[])(Vector.elementAt(1)))[0]
man bekommt vom Vector ein Object macht einen int[] Cast und dann kann man mit [] das Element auswählen *fg*

Was ist daran bekloppt geschweige denn schwer zu lesen? ;D

Ich weiß net ob man das mit delphi hinbekommt...

x-dragon
2003-03-21, 12:35:32
Originally posted by ethrandil

Wieso bekloppt? ist doch ganz einfach ;)
((int[])(Vector.elementAt(1)))[0]
man bekommt vom Vector ein Object macht einen int[] Cast und dann kann man mit [] das Element auswählen *fg*

Was ist daran bekloppt geschweige denn schwer zu lesen? ;D

Ich weiß net ob man das mit delphi hinbekommt... Ich beschäftige mich bei Delphi weniger bis gar nicht mit Vektoren, vielleicht deshalb :). Ausserdem ist bei Delphi der Aufwand zum Klammern setzen einiges geringer ...

Falls du ein Beispiel ohne Vektoren hast bzw das etwas erläuters was das für ein Sinn hat, kann ich dir gerne zeigen wie das dann mit Delphi aussieht.

ethrandil
2003-03-21, 16:14:24
okay :)
Aaalso, das Problem das ich mir dafür aussuche ist:

du hast In einer Datenbank Angaben zu einer Person:
Alter, Dauer der Mitgleidschaft, etc ...
Das ganze kommt in ein Array aus Ganzzahlen (16 bit).
Du willst einen Rich-client für diese Datenbank schreiben. Also ein Proggie, das quasi die komplette DB Spiegelt, un damit arbeitet.

Das was wir aus der Datenbank bekommen speichern wir in einer Hashtable, also eine Datenbankstruktur wo wir mit einem 'key' auf etwas zugreifen können. zB den Namen.

Wir schreiben zB in unser Hashtable : "Becker" und dann ein Array zB: {25,26,12,29938}.

Wenn man nun auf das erste Element dieses Arrays zugreifen möchte schreibt man:
int alter= ((Int[])Hashtable.get("Becker))[0]
:)

Demirug
2003-03-21, 19:03:11
Killercode:

SetRenderState (state, ((Transit.StateDefaultValue[])state.GetType ().GetField(state.ToString()).GetCustomAttributes (typeof(Transit.StateDefaultValue), false))[0].val);

Xmas
2003-03-22, 00:31:32
Originally posted by El Fantastico
Was hat das mit Java zu tun ??? Sowas bekommst Du auch mit anderen Sprachen hin. Kannst ja vereinfachen, wenn Du nicht durchsiehst ;D
Das problem ist dass Java AFAIK kein Operator Overloading kennt, weswegen man im genannten konstrukt eine Methode equals aufrufen muss, statt ein = bzw. == zu verwenden.

ethrandil
2003-03-22, 02:30:17
Originally posted by Xmas

Das problem ist dass Java AFAIK kein Operator Overloading kennt, weswegen man im genannten konstrukt eine Methode equals aufrufen muss, statt ein = bzw. == zu verwenden.
Jupp, macht abba nix, da man ja ein interface für entsprechende Datentypen bauen kann :)
Man muss sich halt dran gewöhnen.
Das ganze zerrt etwas an der Lesbarkeit, aber man gewöhnt sich dran. zwei unterschiedliche Objekte mit selben inhalt sind halt nicht 'gleich'...