如何在Java中将类作为参数传递? [英] How do I pass a class as a parameter in Java?

查看:161
本文介绍了如何在Java中将类作为参数传递?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有什么方法可以传递类作为一个参数在Java中并从该类中调用一些方法?

Is there any way to pass class as a parameter in Java and fire some methods from that class?

void main()
{
    callClass(that.class)
}

void callClass(???? classObject)
{
    classObject.somefunction
    // or 
    new classObject()
    //something like that ?
}

我使用Google Web Toolkit,不支持反射。

I am using Google Web Toolkit and it does not support reflection.

推荐答案

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);
        }
    }




  • 这是Reflection API的一些好例子

    • Here are some good examples on Reflection API
    • 如何使用反射调用方法

      How to invoke method using reflection

       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);
               }
            }
         }
      

      / strong>

      Also See

      • Java Reflection

      这篇关于如何在Java中将类作为参数传递?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆