匿名类实现接口,不能有参数

jav*_*ner 1 java

我有一些代码,我试图重新编译和理解,但我有一个不编译的方法,我希望找到好的工作.方法如下.

private void launchEventPanel(String title) { 
    EventQueue.invokeLater(new Runnable(title) { 
        public void run() { 
        JFrame myFrame = new JFrame(); 
        myFrame.setTitle("Conference Call"); 
        myFrame.setIconImage(CallConference.this.myCore.myPanel.myIconManager.getPromptIcon(CallEMart.class.toString())); 
        myFrame.getContentPane().add(CallConference.this.myEventPanel, "Center"); 
        myFrame.pack(); 
        myFrame.setVisible(true); } }); }
Run Code Online (Sandbox Code Playgroud)

EventQueue.invokeLater的第二行不编译,我得到错误"匿名类实现接口,不能有参数".

任何帮助和解决方案都非常感谢.谢谢!

eva*_*ong 8

那是因为Runnable只是一个接口,它不会将任何参数作为匿名类.要解决它,您可以将final分配给upper参数:

private void launchEventPanel(final String title) { 
    EventQueue.invokeLater(new Runnable() { 
        public void run() { 
        JFrame myFrame = new JFrame(); 
        myFrame.setTitle("Conference Call");  
        myFrame.setIconImage(CallConference.this.myCore.myPanel.myIconManager.getPromptIcon(CallEMart.class.toString())); 
        myFrame.getContentPane().add(CallConference.this.myEventPanel, "Center"); 
        myFrame.pack(); 
        myFrame.setVisible(true); } }); }
Run Code Online (Sandbox Code Playgroud)