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.Objecto=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?
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