“不能从静态上下文中引用非静态方法makeHands”是什么意思,如何避免呢?

问题描述

|                                                                                                                   关闭。这个问题是题外话。它当前不接受答案。                                                      

解决方法

这样编写您的主要方法:
public static void main(String[] args) {
    new Main().new Deck().makeHands();
}
解释有点令人费解,但我会尽力使其更清楚。 基本上,
Deck
Main
类的
inner class
。内部类的一个特征(如果在这种情况下它们不是静态的)是没有外部类的实例就不会存在实例的事实。基本上,ѭ1的每个实例都需要引用
Main
类的实例,如果没有if3ѭ实例,则不能创建
Deck
实例。 我上面粘贴的语法将确保存在正确的实例:首先将创建一个Main实例,然后将创建一个Deck实例,该实例指向之前创建的Main实例。最后,它将调用非静态方法“ 8”。 此处提供了更全面的解释:http://download.oracle.com/javase/tutorial/java/javaOO/nested.html     ,除非您绝对需要它,否则回头看看为什么需要使用静态变量。出于某种原因,仅在静态上下文中使用静态变量的限制就位。 如果绝对需要执行此操作,请在非静态函数中实例化该类的新对象,然后执行所需的操作。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...