我需要从内部类修改一个变量。编译器说我需要将变量声明为静态,但是我不能修改它。代码是这样的:
public class Outter{
private boolean b;
public Outter(){
b = false;
new Inner(b);
}
}
public class Inner{
public Inner(boolean b){
b = true;
}
}
有没有像 C 中的“外部”这样的东西?或任何解决方案,以便我可以修改 b 变量?我尝试将其设置为静态并将整个 Outter 类作为参数传递,但我一直遇到同样的问题。
编辑:那么代码更像是:
public class MainView{
private boolean view;
//JMenus,JMenuItems, JPanels.. declarations
private JFrame frame
MainView(){
view = true;
//initializations
create_listeners();
}
public void create_listeners(){
Menu.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event){
if(View){
new View2(frame);
View = false;
}
}
}
);
}
}
public class View2{
private JButton back = new JButton("Back");
public View2(JFrame frame){
//initialitzatons
create_listeners();
}
public void create_listeners(){
back.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event){
frame.remove(MainPanel);
View = true;// HERE, i want to modify the variable
}
}
);
}
}
问题是我应该如何修改 View2 类中的变量“View”。
抱歉表格不好,我做得很快,需要代码翻译才能理解。