Onde está a propriedade "class" em java.awt.Component?

4 respostas
Filipe_Silva

Olás,

Alguém sabe porque é válido se escrever:

java.lang.Object o = java.awt.Component.class;

Estou falando da propriedade class de Component. No javadoc eu não acho essa propriedade. Aliás, generalizando, Toda classe (fora Object) tem uma propriedade Class class?

Se sim, então onde ela está que eu não acho?

Filipe

4 Respostas

T

Ela não é exatamente uma propriedade, mas sim um “class literal”.
Não existe algo como uma “propriedade” em Java, tal como se fosse uma “property” do VB ou C#.
Você não acha no Javadoc porque .class não é um campo de nenhuma classe, mas uma forma de obter um objeto “java.lang.Class” representando a classe. Tanto é que se você usar um editor que colore o texto (Syntax highlighting), tal como o NetBeans, o Eclipse, o JEdit ou mesmo o Ultraedit ou o vim, você irá ver que a palavra “.class” fica na mesma cor que as palavras-chave.

Filipe_Silva

Hum… Então seria o mesmo efeito de utilizar o método getClass de java.lang.Object?

Rafael_Steil

Sim. Alias, ate mesmo tipos primitivos, como int e float, tem um class (int.class.xxxx)

Rafael

cv1

Nao eh EXATAMENTE a mesma coisa... esse codigo nao compila, mas acho que serve de exemplo:

Object foo = "Hello, I'm a string!";
String bar = "Hello, I'm another string!";

foo.class.equals(Object.class); // true
foo.getClass().equals(String.class); // true
bar.class.equals(String.class); // true
bar.getClass().equals(String.class); // true
Criado 9 de abril de 2005
Ultima resposta 10 de abr. de 2005
Respostas 4
Participantes 4