我有两个包裹。我想从第一个包导入的类声明为PUBLIC。尽管如此,当我从第二个包中测试一个文件时,它会向我显示这样的编译错误:
PUBLICclass在mypackage中不公开;无法从外包装
访问
我尝试从第一个包中向类中添加一个公共构造函数,但它没有任何区别。
你有什么想法吗?我使用Netbeans 7。
第一个包中的类如下所示:
public class PUBLICclass extends AbstractClass { public PUBLICclass() { } }
答案 0 :(得分:39)
让我猜一下
您对班级PUBLICClass
的初始声明不公开,然后您将其设为“公开”,您是否可以尝试清理并重建您的项目?
答案 1 :(得分:12)
public SmartSaverCals(Context context)
{
this.context= context;
}
将public添加到您的构造函数中。在我的案例中解决了问题
答案 2 :(得分:2)
检查默认超类的构造函数。它需要公开或受到保护。
答案 3 :(得分:0)
您是否有任何机会在您的项目中有两个PUBLICclass
类,其中一个是公共的(其中一个是您在此处发布的签名),另一个是包可见的,您导入错误的一个你的代码?
答案 4 :(得分:0)
也许你应该尝试删除" new"关键字,看看是否有效。
因为上次我尝试创建这样的Typeface
时出现此错误:
Typeface typeface = new Typeface().create("Arial",Typeface.BOLD);
答案 5 :(得分:0)
closeDrawers(boolean)
在android.support.v4.widget.DrawerLayout
中不是公开的。 无法从外部软件包访问
@Override
public void onBackPressed() {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
答案 6 :(得分:0)
请注意,就所考虑的软件包而言,创建类时的默认设置不是公开的。确保在定义类时实际写了public class [MyClass] {
。我犯了这个错误的次数比我想承认的要多。