2 ŞUBAT 2011, ÇARŞAMBA
nasıl java parametre olarak Sınıfı geçtim mi?
java parametre olarak sınıf geçmek ve bu sınıftan bazı yöntemleri yangın için herhangi bir yolu var mı ?
void main()
{
callClass(that.class)
}
void callClass(???? classObject)
{
classObject.somefunction
// or
new classObject()
//something like that ?
}
Üzgünüm, Google Web Toolkit falan eklemeyi unuttum, Google Web Toolkit kullanıyorum ve yansıma desteklemiyor.
CEVAP
2 ŞUBAT 2011, ÇARŞAMBA
public void foo(Class c){
try {
Object ob = c.newInstance();
} catch (InstantiationException ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
}
}
Nasıl yöntem kullanarak yansıma çağırmak için
import java.lang.reflect.*;
public class method2 {
public int add(int a, int b)
{
return a b;
}
public static void main(String args[])
{
try {
Class cls = Class.forName("method2");
Class partypes[] = new Class[2];
partypes[0] = Integer.TYPE;
partypes[1] = Integer.TYPE;
Method meth = cls.getMethod(
"add", partypes);
method2 methobj = new method2();
Object arglist[] = new Object[2];
arglist[0] = new Integer(37);
arglist[1] = new Integer(47);
Object retobj
= meth.invoke(methobj, arglist);
Integer retval = (Integer)retobj;
System.out.println(retval.intValue());
}
catch (Throwable e) {
System.err.println(e);
}
}
}
Ayrıca Bkz
Bunu Paylaş:
Nasıl Java 8 lambda parametre olarak a...
Neden Java Vector sınıfı eski veya kul...
Nasıl parametre olarak gönderilen bir ...
Nasıl bir dize olarak yöntem adı veril...
Nasıl C parametre olarak bir işlev geç...