日期:2014-05-20  浏览次数:21981 次

an enclosing instance that contains 自定义类 is required
在程序2中引用程序1中自定义的类出现标题那种错误。
简单代码如下:
程序1:
package   sharp;
public   class   1{
    class   a   extends   Exception{}
    class   b   extends   a{}
    class   c   extends   b{}
    }

程序2:
package   sharp;
import   sharp.1.*;
public   class   2{
    if()
        throw   new   c();
    }
程序2的throw   new   c();这条语句就会出现错误:
an   enclosing   instance   that   contains   sharp.1.c   is   required
请问这个问题怎么解决,谢谢。




------解决方案--------------------
在网上查了一下,
创建非static内部类的实例时,需要使用外围类的一个实例来使用new语法
例如 throw (new 1()).new c();

或者将a、b、c都声明为static