Existe alguma maneira de passar a classe como um parâmetro em Java e disparar alguns métodos dessa classe?
void main()
{
callClass(that.class)
}
void callClass(???? classObject)
{
classObject.somefunction
// or
new classObject()
//something like that ?
}
Estou usando o Google Web Toolkit e ele não suporta reflexão.
java
class
gwt
parameters
Michael Dorner
fonte
fonte
Para chamar o método, você chama assim:
fonte
Construa seu método para aceitá-lo.
Chame o método
Você também pode restringir o tipo de classe, por exemplo, este é um dos métodos de uma biblioteca que eu criei.
Para mais informações, procure Reflexão e Genéricos.
fonte
Usar
UMA
Class
também é um objeto Java, para que você possa fazer referência a ele usando seu tipo.Leia mais sobre isso na documentação oficial .
fonte
Esse tipo de coisa não é fácil. Aqui está um método que chama um método estático:
Atualização: Espere, acabei de ver a tag gwt na pergunta. Você não pode usar reflexo no GWT
fonte
Não tenho certeza do que você está tentando realizar, mas você pode considerar que passar em uma aula pode não ser o que você realmente precisa fazer. Em muitos casos, lidar com uma classe como essa é facilmente encapsulado dentro de um padrão de fábrica de algum tipo e o uso disso é feito por meio de uma interface. aqui está uma das dezenas de artigos sobre esse padrão: http://today.java.net/pub/a/today/2005/03/09/factory.html
o uso de uma classe dentro de uma fábrica pode ser realizado de várias maneiras, principalmente por ter um arquivo de configuração que contém o nome da classe que implementa a interface necessária. Em seguida, a fábrica pode encontrar essa classe de dentro do caminho da classe e construí-la como um objeto da interface especificada.
fonte
Como você disse, o GWT não suporta reflexão. Você deve usar ligação adiada em vez de reflexão ou biblioteca de terceiros, como gwt-ent, para suporte à reflexão na camada gwt.
fonte
Veja estes: http://download.oracle.com/javase/tutorial/extra/generics/methods.html
Aqui está a explicação para os métodos de modelo.
fonte
Dê uma olhada no tutorial de reflexão e na API de reflexão de Java:
https://community.oracle.com/docs/DOC-983192 insira a descrição do link aqui
e
http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html
fonte
Classifique como paramater. Exemplo.
Três classes:
-
-
Na classe Método terminal, hackCar () leva a classe TestCar como parâmetro.
fonte