【发布时间】:2013-01-31 03:10:47
【问题描述】:
我只使用一个项目来移植 lite 和完整版本,因为我只是在更新 Manifest 文件包名称。
我的项目结构是这样的
我的应用
|_src
|_com.example.myapp
|_MyClass.java
和我的 Manifest 包名不同。
package="com.example.myapplite"
我正在使用一个库项目,因为我想要在 MyApp 中使用的类的包名。
我用过这个
System.out.println("Package Name " + context.getPackageName());
但它给了我一个清单文件包名称值,即。 com.example.myapplite
我想要 MyClass.java 包名。 IE。 com.example.myapp
我也知道这一点
MyClass mClass = new MyClass();
Package pack = mClass.getClass().getPackage();
但我不能使用这种方法,因为我正在使用以下方法在我的库项目中获取类文件
Class c = Class.forName("package_name.MyClass");
如何以编程方式获取 MyClass.java 文件的包名?
【问题讨论】:
-
试试这个:YourClass.class.getPackage().getName();
-
不清楚为什么你会使用
new MyClass().getClass()(有效地)而不仅仅是MyClass.class...或者为什么这对你来说还不够。您对使用Class.forName的解释并不能真正解释您要做什么。你希望做什么Class.getPackage()不适合你? -
我正在使用库项目,要在我的库项目中使用 MyClass 我需要访问它 Class.forName("package_name.MyClass");因为库项目不知道 MyClass.java
-
我也不能在访问之前创建 MyClass 的对象。
标签: java android class android-library package-managers