么是封闭实例-呵呵,这个概念我第一次看见是在一本叫做Java高效编程的书上,于是baidu,google都没有找到相关的网页。
后来无意中想起来了我看英文书中的enclosing class,推断这个译本的原文应该是enclosing instance,果不其然,上网一搜发现好多人再问no enclosing instance of class XXX的问题,不禁郁闷了一把,心想学java的兄弟第一次见到汉语的封闭类会不会也像我一样郁闷呢,所以决定写这篇贴备我以后查阅也希望能帮到需要的其他人。重新再次声明:“我的日志并不是想有人想像的那样叫做什么显摆用的,呵呵”!
(1)enclosing class
Java中把定义在其他类内部的类定义为Inner class,相反包含Inner class的类被叫做该Inner class的enclosing class。
(2)enclosing instance
有了上面关于enclosing class的定义,很容易就明白enclosing instance就是它的实例(instance)。
(3)no enclosing instance of class XXX
为了解释这个runtime exception,我首先假设有以下的类定义:
public class Outter {
public class Inner {
private int value;
}
public void testInnerClass () {
_______________________________
//如何声明一个指向内部类实例的应用变量呢?
}
}
其实,只要对实例变量和类变量理解的够深刻,你就应该很轻松的在上面的横线填入以下代码:
Outter.Inner oi = new Outter.Inner();
or Inner oi = new Inner();
or Outter.Inner oi = new Outter().new Inner();
Jvm对于这三种答案都是认同的,但是你别高兴得太早,想象如果不是在enclosing class中的情形
又如何呢?
那么只能是最后一个答案,我曾看见有人写过下面的方法:
Outter.Inner oi = new Outter.Inner();
这时就会抛出上面的异常信息了,呵呵,其实想想Inner不是static的,怎么可以通过enclosing class
的类名引用呢?
分享到:
相关推荐
Java编程语言中的"No enclosing instance of type"错误通常发生在尝试创建非静态内部类的实例,但没有一个外部类的实例可以访问时。在上述示例中,`ListNode`是`PrintListFromTailToHead`类的非静态内部类。由于`...
在Java中,当你尝试在静态上下文中创建非静态内部类的对象时,会遇到以下错误信息:“No enclosing instance of type EmployeeTest is accessible. Must qualify the allocation with an enclosing instance of type...
private static final ${enclosing_type} m_instance = new ${enclosing_type}(); /** * 私有的默认构造子 */ private ${enclosing_type}() {} /** * 静态工厂方法 */ public static ${enclosing_type}...
这个包含嵌套类的外部类被称为封装类(Enclosing Class),有时也称为外部类(Outer Class)。嵌套类可以是封装类的直接成员,也可以是封装类的方法成员中的成员。作为外部类的成员,嵌套类可以具有访问修饰符`...
They inherit the `this` value from the enclosing context, eliminating common issues related to the `this` keyword in traditional function expressions. For example: ```javascript const values = [0, 3...
For instance, if you want to print today's date in a sentence, you would use `$ echo "Today is `date`"`. Here, `date` inside backticks is executed first to get the current date, which is then printed...
Table of Contents Header Files The #define Guard Header File Dependencies Inline Functions The -inl.h Files Function Parameter Ordering Names and Order of Includes Scoping Namespaces Nested Classes ...
F2084 Internal Error SCR765.00 of 5 Closed11193 Inlined function affects working of the enclosing for loop0.00 of 5 Closed11184 [Fatal Error] F2084 Internal Error: ILLK26340.00 of 5 Closed11069 ...
instance of Mask will be interpreted as a command to unload it, or - In Windows 3.1, if a program item for Mask for Windows - PRWin98 has been set up in the StartUp group in Program Manager, double...
集合了 所有的 Unix命令大全 ...telnet 192.168.0.23 自己帐号 sd08077-you0 ftp工具 192.168.0.202 tools-toolss ... 各个 shell 可互相切换 ksh:$ sh:$ csh:guangzhou% bash:bash-3.00$ ... 命令和参数之间必需用空格隔...