Java 不允许访问构造函数

Java 不允许访问构造函数,java,Java,您好,我在为我的应用程序创建自定义主干应用程序时遇到此错误。它所做的是向其父构造函数发送一个将安装片段的目标容器。自定义类只是零参数构造函数,并将一个整数超级存储到存储targetContainer的父类。但是当我运行我的应用程序时,我得到了一个运行时异常 这是我的密码: 以下是我计划构建的应用程序特定的自定义类: public class NoteActivity extends BackboneActivity { public NoteActivity() {

您好,我在为我的应用程序创建自定义主干应用程序时遇到此错误。它所做的是向其父构造函数发送一个将安装片段的目标容器。自定义类只是零参数构造函数,并将一个整数超级存储到存储targetContainer的父类。但是当我运行我的应用程序时,我得到了一个运行时异常

这是我的密码:

以下是我计划构建的应用程序特定的自定义类:

public class NoteActivity extends BackboneActivity 
{
    public NoteActivity()
    {
        super(R.id.fragmentContainer);
        addFragment(new NoteFragment());
    }

}
现在这里是主干应用程序,所以我可以随意添加片段。我希望使用此类对应用程序和片段进行动态控制:

public class BackboneActivity extends ActionBarActivity
{
    private FragmentManager fragmentManager;
    private int targetContainer = -1;

    public BackboneActivity(int target)
    {
        super();
        targetContainer = target;
    }

    protected boolean addFragment(Fragment fragment)
    {
        if(fragment == null) return false;

        fragmentManager.beginTransaction()
            .add(targetContainer, fragment)
            .commit();

        return true;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(targetContainer);

        fragmentManager = getSupportFragmentManager();
    }
}
我仍然在学习Android和Java,我有一些编程经验,所以我不太确定我错过了什么

我得到的错误是不允许访问构造函数。这篇文章在技术上与其他描述不允许访问类的文章不同吗

我承认我对这个错误感到很傻


谢谢。

你能不能做点像:

public NoteActivity()
{
    super();
    addFragment(new NoteFragment());
}

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(targetContainer);
    // you will have to put a getter/setter in BackboneActivity or change access modifiers
    this.setTargetContainer(R.id.fragmentContainer); 
    fragmentManager = getSupportFragmentManager();
}

R.id.fragmentContainer
的类型是什么?请将发生错误的堆栈跟踪/行发布到哪里。我也检查了,它是int。我应该为int链接super,对吗?下面是它的样子:NoteActivity(int){super(int)}->BackboneActivity(int){super();}->ActionBarActivity()嗨,我将发布堆栈跟踪。我发布了错误的堆栈跟踪。一般来说,从构造函数调用可重写方法是不允许的。但这可能不是错误消息的原因,只是一个观察。这也是我一直在想的。谢谢。但我仍然想知道为什么不允许我获取构造函数访问权限。嗨,我已经解决了d我的问题。我认为我在创建自定义类时做了一些Android惯例无法接受的事情,我在不影响计划可读性的情况下重构了我的代码,并且工作正常。感谢你的想法。这帮助我解决了我的问题。一般来说,你不应该用
new
实例化活动,而应该将此任务留给所以,如果你想设置一些属性,如果我理解正确的话,它应该在
onCreate
中,那么这是否意味着我不应该在子类活动时干预构造函数?我相信是的。我会在
onCreate
中为初始化做任何需要做的事情。