无法从外部包访问类

时间:2011-12-05 14:12:35

标签: java

我有两个包裹。我想从第一个包导入的类声明为PUBLIC。尽管如此,当我从第二个包中测试一个文件时,它会向我显示这样的编译错误:

  

PUBLICclass在mypackage中不公开;无法从外包装

访问

我尝试从第一个包中向类中添加一个公共构造函数,但它没有任何区别。

你有什么想法吗?我使用Netbeans 7。

第一个包中的类如下所示:

public class PUBLICclass extends AbstractClass { public PUBLICclass() { } }

7 个答案:

答案 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] {。我犯了这个错误的次数比我想承认的要多。