Olá
[]s
Luca
Já?
Tô correndo atrás do 5.0 ainda…
Aff, que baderna, hehe.
Gostei do comentário:
Alguém poderia, por gentileza, me explicar como seriam essas Property Literals? vlw
objeto->X = 4
nossa, revivo meus momentos de programação C
será que não poderia ser assim ?
public void set<PARAM>(<TYPE PARAM> X){
this.<PARAM> = X;
// syntaxe alternativa: this.${PARAM} = X;
}
public <TYPE PARAM> get<PARAM>(){
return <PARAM>;
}
Poderia ser controlado via annotations a permissão ou restrição a parâmetros não publicos.
Basicamente o que hoje em dia você faz com isto:
class Point {
private int x;
public void setX (int pX) { x = pX; }
public int getX () { return x; }
}
...
Point p = new Point(), q = new Point();
p.setX (q.getX());
você agora faria com isto:
class Point {
private int property x;
public void setX (int pX) { x = pX; }
public int getX () { return x; }
}
...
Point p = new Point(), q = new Point();
p.x = q.x;
// sintaxes alternativas: p->x = q->x;
// ou então p#x = q#x;
Ah, valew thingol.
Basicamente o que hoje em dia você faz com isto:
class Point {
private int x;
public void setX (int pX) { x = pX; }
public int getX () { return x; }
}
...
Point p = new Point(), q = new Point();
p.setX (q.getX());
você agora faria com isto:
class Point {
private int property x;
public void setX (int pX) { x = pX; }
public int getX () { return x; }
}
...
Point p = new Point(), q = new Point();
p.x = q.x;
// sintaxes alternativas: p->x = q->x;
// ou então p#x = q#x;
[/quote]
fazendo isso p.x = q.x;
o p.setX e q.getX estão sendo chamados de forma implicita?
mchiareli wrote:
Acho que não por que se for assim coisas que já existem iriam funcionar diferente.
Acho que a classe ficaria.
antes:
class Point
{
private int x;
public void setX (int pX) { x = pX; }
public int getX () { return x; }
public static void main(String [] args){
Point p = new Point();
p.setX(12);
System.out.println( p.get() );
}
}
depois:
class Point
{
private int property x;
public static void main(String [] args){
Point p = new Point();
p.setX(12);
System.out.println( p.get() );
}
}
Acho que no caso o compilador ao ver a palavra chave property iria criar um getter e um setter padrão, isto se não não existir um já.
Obrigado Luca!
Em um geral, nota-se o esforço em reduzir a necessidade de código redundante, que poderia ser representado de outra forma, extensão da NIO, Swing, etc…
Só a extensão das Anotações que eu achei forçar a barra, digo quando se configura vários “atributos” da anotação… Vide, por exemplo, @MessageDriven com aqueles @ActivationConfigProperty… Porém, aquelas mais sucintas cai muito bem…