我目前正在建设一个Android Studio的模块结构如下所示:android模块 - 如何让变量只能在模块内部访问?
com.example.module
+--- .activity
+--- .adapter
+--- .fragment
+--- etc. package names
+--- .view
+--- InterfaceClass.java
我打算让InterfaceClass.java是到模块本身的访问的门户“。它的结构大致是这样的:
public class InterfaceClass
{
private static InterfaceClass instance;
private static AppCompatActivity starterAct;
public static int sDisplayWidth, sDisplayHeight;
public static InterfaceClass getInstance() {
if (instance == null) {
synchronized (InterfaceClass.class) {
if (instance == null) {
instance = new InterfaceClass();
}
}
}
return instance;
}
public void setup(AppCompatActivity starterAct) {
this.starterAct = starterAct;
this.updateScreenSize()
}
...
private void updateScreenSize() {
WindowManager wm = (WindowManager) this.starterAct.getSystemService(WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
sDisplayWidth = size.x;
sDisplayHeight = size.y;
}
}
我的目的是使变量sDisplayWidth
和sDisplayHeight
只有com.example.module
模块内部访问及其所有程序包,而不是外部模块。因为使用当前设置,我可以从任何地方调用或设置InterfaceClass.sDisplayWidth
,即使在使用模块的应用程序的活动中,我也希望它只能在实例的设置代码中设置,并且只能在模块内使用。
我不认为protected
修饰符可以工作,因为它最终不能在模块的包内部访问。
我的问题:我该如何让变量只能在模块中访问?
编辑:澄清,而不是变量是package-private
,我希望它是module-private
。
我可能会误解这个问题,但你在问如何使一个可变的包 - 私人?如果是,请删除public修饰符。 – Kuffs