Programowanie (IDE, UML, Wzorce...), Programowanie (PHP, Java...)

Tęsknota za wyższym poziomem Javy

11 lipca, 2006 o 22:17:07 Dodaj komentarz Poziom: 0 Permalink

Piszę kod w Javie:

  1. private Listener listener = new Listener() {
  2.   void someCallback() {
  3.     Iterator i = listeners.iterator();
  4.     while(i.hasNext()) {
  5.       Listener l = (Listener)i.next();
  6.       l.someCallback();
  7.     }
  8.   }
  9.   //I inne tego typu metody
  10. }
  11.  
  12.   private Set listeners;

W Javie 1.5 mamy lepiej

  1. private Listener listener = new Listener() {
  2.   void someCallback() {
  3.     for(Listener l: listeners) {
  4.       l.someCallback();
  5.     }
  6.   }
  7.   //I inne tego typu metody
  8. }
  9.  
  10. private Set<Listener> listeners;

A czy nie prościej by było to opisać jako:

private Listener listener = new proxyListener(); @ProxyCollection(listeners) private class proxyListener implements Listener {} private Set<Listener> listeners;

Nie upieram się przy znaku at(już wykorzystanym), może to być & lub $ (którego i tak nie można wykorzystać). Oczywiście wszystko na poziomie kompilacji...

Czy ktoś może powiedzieć, jak podobny kod wygląda w ruby(tzn. weduk filozofii ruby i w ruby)?

#

jam łasica

$ jest wykorzystywane

11 lipca 2006, 23:09:32

#

Uzytkownik

Wiem - w JVM jako separator w klasach wewnętrznych(nie wiem, czy gdzieś indziej). Ale chyba nie jest to 'wykorzystanie', które mogłoby stworzyć niejasności...

12 lipca 2006, 09:24:57

#

jam łasica

$ można użyć dla dowolnej nazwy, np.

public int $() {
int $$ = 5;

return $$ * $$;
}
Tak więc, zamiast $ równie dobrze można użyć znak X ;)

12 lipca 2006, 12:37:06

#

Uzytkownik

Przepraszam - nie wiedzialem. Znaki alfanumeryczne sa jednak mniej widoczne. W kazdym razie uzycie $ (na samym poczatku) nie powoduje niejasnosci skladniowych. X takze :) .

12 lipca 2006, 14:25:13