仅当多个构造函数可用时,“变量可能尚未初始化”

Meh*_*tei -1 java android

我有一个在其中声明变量并在构造函数中对其进行初始化的类。当我的代码中只有一个构造函数时,一切都可以正常工作。当我添加另一个构造函数时,会发生此问题。这两个构造函数的一切都相同,但是只有构造函数的参数不同。知道为什么会这样吗?

private final NavDrawerManager.OnDrawerItemClickListener mOnDrawerItemClickListener;
private final MoreMenuActivity.OnItemClickListener mOnItemClickListener;


public NavMenuAdapter(final List<NavMenuItem> menuItems, final String selectedId, final NavDrawerManager.OnDrawerItemClickListener onDrawerItemClickListener) {
    mMenuItems = menuItems;
    mSelectedId = selectedId;
    mOnDrawerItemClickListener = onDrawerItemClickListener;
}

public NavMenuAdapter(final List<NavMenuItem> menuItems, final String selectedId, final MoreMenuActivity.OnItemClickListener onItemClickListener) {
    mMenuItems = menuItems;
    mSelectedId = selectedId;
    mOnItemClickListener = onItemClickListener;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您将属性声明为final,但是构造函数并未全部初始化它们。

private final NavDrawerManager.OnDrawerItemClickListener mOnDrawerItemClickListener;
private final MoreMenuActivity.OnItemClickListener mOnItemClickListener;
Run Code Online (Sandbox Code Playgroud)

每次构造实例时,它都应该初始化所有最终属性。