Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式获取应用程序类名_Java_Android - Fatal编程技术网

Java 如何以编程方式获取应用程序类名

Java 如何以编程方式获取应用程序类名,java,android,Java,Android,对于android应用程序,我需要在运行时获取应用程序的子类名称 e、 g.:公共类TargetApplicationClass扩展应用程序{…} 我需要得到TargetApplicationClass的字符串值 我有办法做到吗 让我详细介绍一下我的案例: 我不是在开发一个简单的android应用程序,我已经有了TargetApplicationClass的上下文;我正在开发一个注入库,该库对应用程序类没有任何知识;我可以通过列举和获取一些信息 app = ActivityThread.curr

对于android应用程序,我需要在运行时获取应用程序的子类名称

e、 g.:公共类TargetApplicationClass扩展应用程序{…}

我需要得到TargetApplicationClass的字符串值

我有办法做到吗

让我详细介绍一下我的案例: 我不是在开发一个简单的android应用程序,我已经有了TargetApplicationClass的上下文;我正在开发一个注入库,该库对应用程序类没有任何知识;我可以通过列举和获取一些信息

app = ActivityThread.currentApplication();
context = app.getApplicationContext();
...
问题在于以下代码不必返回正确的应用程序类名:

app.getClass().getName()

这应该行得通

我相信快速的谷歌搜索就足够了。但是,您可以这样做。getClass.getName并确保它没有在静态上下文中运行

如果您想使用该名称进行标记,则可以使用

private String TAG = TargetApplicationClass.class.getSimpleName();
private String Name = TargetApplicationClass.class.getName();
但是,如果您想获得用于动态加载类的名称 然后你可以用

private String TAG = TargetApplicationClass.class.getSimpleName();
private String Name = TargetApplicationClass.class.getName();
有关更多信息,请参见此示例

System.out.println(String.class.getName());
System.out.println(String.class.getCanonicalName());
System.out.println(String.class.getSimpleName());
输出

java.lang.String
java.lang.String
String

TargetApplicationClass.getClass.GetName如果只想使用类名,则必须使用getSimpleName.yourActivity.getApplication.getClass