Categorieën
Techtalk

Don’t try to fake it

Hm. JAVA weirdness vandaag ontdekt. Men neme een bestand foobar.txt. Vervolgens beschouwen we even deze code:

File foo = new File('foobar.txt');
System.out.println(foo.getPath());
foo.renameTo(new File('barfoo.txt'));
System.out.println('foo.getPath());

Dat zou pretty straightforward moeten zijn: de code hernoemt het foobar.txt bestand naar barfoo.txt. Voor en na de operatie wordt via de getPath() operatie het pad en de naam van het bestand opgehaald en getoond.

De logica dicteert dat nadat de bestandsnaam van het foo object is gewijzigd, de getPath() methode de nieuwe bestandsnaam zou weergeven.

Helemaal niet dus.

De getPath() methode blijft de oude naam nog altijd tonen. Mogelijk alternatief om dat op te vangen is werken met een extra File object:

File foo = new File('foobar.txt');
System.out.println(foo.getPath());
File newFoo = new File('barfoo.txt');
foo.renameTo(newFoo);
System.out.println('newFoo.getPath());

Mijns insziens niet meteen het meest propere alternatief want het kost je geheugen, zeker als je met grote operaties bezig bent, maar het werkt wel. JAVA adepten onder ons, wat denken jullie ervan?

Categorieën
Techtalk

13949712720901ForOSX

Of nog: Java 1.6 in Leopard! Nu!

If you are a Java developer that uses MacOSX, please create a blog post with this string: 13949712720901ForOSX

Bij deze dus ook mijn steentje bijgedragen. Oké, volgende internetpetitie/blogmeme-thingy dan maar weer…

Via Koen