如何从方法返回类名?另外如何找到给定对象的Class?

时间:2017-04-05 10:50:06

标签: java android reflection

我正在尝试从类的方法返回.class文件或Activity名称。这样我就可以在Intent方法中调用Activity。它就像: -

public class MonthCall {
    public Class getobj(View v)
    {
        Class c;
        if(v.getId()== R.id.btnjan)
        {
            c = Jan.class;
        }
        else if(v.getId()== R.id.btnfeb)
        {
            c = Feb.class;
        }
        else
        {
            c = Diary.class;
        }
        return c;
    } 

现在,我想将这些返回值用于调用活动,因为许多按钮在各种Activity中都很常见,因此它将调用相同的Activity。

    public class Month extends Activity {
        MonthCall monthCall;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.month);
        }
        public void monthclick(View view)
        {
            Class cr;
            cr = monthCall.getobj(view);
            Intent i = new Intent(this,cr.getClass());
            startActivity(i);
        }
    }

我如何以正确的方式实施上述方法?帮助我尽快得到解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用java的instanceof关键字来实现此目的。

仅举例来看下面的例子:

String s = "WhichClassInstanceIm";

if (s instanceof java.lang.String) 
{
    System.out.println("String class");
}
else
{
    System.out.println("Unknown");
}