how to convert string to class name

2019-02-19 04:09发布

I am trying to convert string to class name. My code is:

app.actNum = "third.class";
        in.close();
                //on test
                   //  Intent intent = new Intent(this.context,Class.forName(app.actNum));



Intent dialogIntent = new Intent(getBaseContext(), Class.forName(app.actNum));

but get

  get ClassNotFoundException on Class.forName android

标签: android class
2条回答
贼婆χ
2楼-- · 2019-02-19 04:09

When calling Class.forName(), you should use the class's name without the extension. So if your class is calledTest and is in the package mypackage.tests, then you should use:

Class.forName("mypackage.tests.Test")
查看更多
够拽才男人
3楼-- · 2019-02-19 04:24

I think you have some problems with the path.

First, try and get the complete path :

String completePath = PathForClass.class.getResource(app.actNum).toString();

Then, all you have to do is to invoke it as you did:

 Class.forName(completePath.replace(".class","")

(As stated in the other answers, you have to remove the .class. )

查看更多
登录 后发表回答