本文翻译自:Is not an enclosing class Java

I'm trying to make a Tetris game and I'm getting the compiler error 我正在尝试制作俄罗斯方块游戏,但出现编译器错误

Shape is not an enclosing class

when I try to create an object 当我尝试创建对象时

public class Test {public static void main(String[] args) {Shape s = new Shapes.ZShape();}
}

I'm using inner classes for each shape. 我为每个形状使用内部类。 Here's part of my code 这是我的代码的一部分

public class Shapes {class AShape {}class ZShape {}
}

What am I doing wrong ? 我究竟做错了什么 ?


#1楼

参考:https://stackoom.com/question/1Myet/不是封闭的类Java


#2楼

ZShape is not static so it requires an instance of the outer class. ZShape不是静态的,因此它需要外部类的实例。

The simplest solution is to make ZShape and any nested class static if you can. 最简单的解决方案是,如果可以的话,使ZShape和任何嵌套的类static

I would also make any fields final or static final that you can as well. 我还可以使任何字段为finalstatic final


#3楼

I have encountered the same problem. 我遇到了同样的问题。 I solved by creating an instance for every inner public Class. 我通过为每个内部公共类创建一个实例来解决。 as for you situation, i suggest you use inheritance other than inner classes. 至于您的情况,我建议您使用继承而不是内部类。

public class Shape {private String shape;public ZShape zShpae;public SShape sShape;public Shape(){int[][] coords =  noShapeCoords;shape = "NoShape";zShape = new ZShape();sShape = new SShape();}class ZShape{int[][] coords =  zShapeCoords;String shape = "ZShape";}class SShape{int[][] coords = sShapeCoords;String shape = "SShape";}//etc
}

then you can new Shape(); 然后可以新建Shape(); and visit ZShape through shape.zShape; 并通过shape.zShape访问ZShape;


#4楼

Suppose RetailerProfileModel is your Main class and RetailerPaymentModel is an inner class within it. 假设RetailerProfileModel是您的Main类,而RetailerPaymentModel是其中的内部类。 You can create an object of the Inner class outside the class as follows: 您可以在类外创建Inner类的对象,如下所示:

RetailerProfileModel.RetailerPaymentModel paymentModel= new RetailerProfileModel().new RetailerPaymentModel();

#5楼

No need to make the nested class as static but it must be public 无需将嵌套类设为静态,但它必须是公共的

public class Test {public static void main(String[] args) {Shape shape = new Shape();Shape s = shape.new Shape.ZShape();}
}

#6楼

What I would suggest is not converting the non-static class to a static class because in that case, your inner class can't access the non-static members of outer class. 我建议不要将非静态类转换为静态类,因为在这种情况下,您的内部类无法访问外部类的非静态成员。

Example : 范例:

class Outer
{class Inner{//...}
}

So, in such case, you can do something like: 因此,在这种情况下,您可以执行以下操作:

Outer o = new Outer();
Outer.Inner obj = o.new Inner();

不是封闭的类Java相关推荐

  1. java 不是封闭类_java – MainActivity.this不是一个封闭的类AsyncTask

    我试图第一次创建一个AsyncTask,但我没有太多的运气. 我的AsyncTask需要从服务器获取一些信息,然后将新的布局添加到主布局以显示此信息. 一切似乎或多或少是清楚的,但是错误信息" ...

  2. java实验系统常用类,Java的常用系统类

    Java的常用系统类Tag内容描述: 1.Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符 ...

  3. Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类

    时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...

  4. 时间日期类JAVA包含地区属性_Java常用类 | 时间和日期类

    开发中经常涉及到时间与日期,记录下Java中与时间和日期相关的API JDK8之前与时间日期相关的类 java.lang.System类 System类提供了一个公共的静态方法currentTimes ...

  5. 设计一个名为complex的类来表示复数_complex类java解决

    作者:wzu_cza123 出自:CSDN 原文:blog.csdn.net/wzu_cza123/article/details/108857953?utm_medium=distribute.pc ...

  6. SHA1签名工具类java

    SHA1签名工具类java package com.net.util;import java.security.MessageDigest; import java.util.Iterator; im ...

  7. Object类 java 1614965390

    Object类 java 1614965390 关于 getClass()方法 演练 hashCode() 方法 toString()方法 例子 一个Hero对象的字符串结果 重写类的方法 打印对象的 ...

  8. 自定义日期工具类 java 1614698552

    自定义日期工具类 java 1614698552 需求 思路 演练 日期转字符串的方法 字符串转日期方法 测试类 更多尝试 测试另一个方法

  9. SimpleDateFormat类 java 1614697530

    SimpleDateFormat类 java 1614697530 关于 格式 构造方法 格式化与解析 演练 从日期到字符串 指定格式 加上年月日文字 演练 从字符串到日期

最新文章

  1. RHEL5+PXE+DHCP+Apache+Kickstart安装RHCE5.1 i386实验室环境
  2. VR/AR标准委员会成立,宣布全新的标准OpenXR
  3. 盛趣游戏 html5游戏,盛趣游戏谭雁峰:游戏破局的“精细”时代已来
  4. 171. Excel Sheet Column Number
  5. 阿里云机器学习PAI构建AI集团军作战,联手Intel在AI软硬件领域发力
  6. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第八章——自编解析与答案
  7. P2896 [USACO08FEB]一起吃饭Eating Together 解题报告
  8. Django使用问题记录
  9. 3结构介绍_接收机基本结构
  10. 凑数算法 java_[蓝桥杯][2017年第八届真题]包子凑数 (Java代码)
  11. 如何让php支持mysql的,怎么让php支持MySql
  12. stm32单片机相同系列型号代码移植
  13. RTT移植STM32之创建进程
  14. Macbook开启HIDPI(2K显示器)
  15. 高通apq8098平台sd卡总结
  16. iPhone屏幕尺寸、statusBar、navigationBar、tabBar高度对比
  17. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
  18. docker容器内开启22 ssh_细述docker容器中创建SSH服务镜像
  19. 【c#】 MVC模式 ——《七天学会》系列学习心得
  20. C#程序实现窗体的最大化/最小化

热门文章

  1. linux系统有哪些版本 linux系统哪个版本好用
  2. ArcGIS 从DSM中提取高程点
  3. 发送电子邮件响应服务器554 5.7.1,错误 (554 5.2.2 邮箱) 邮箱中启用邮件的公用文件夹Office 365 | Microsoft Docs...
  4. 2022.8.22-8.28 AI行业周刊(第112期):个人定位发展
  5. VINS-mono 学习之 三角化
  6. autodesk许可证服务器,Autodesk 网络许可不可用怎么办?更改或重置Autodesk产品2020版或更高版本的网络许可服务器...
  7. 【重磅】全行业事理图谱V3.0正式发布:基于实证的由因求果、由果溯因,因果路径发现
  8. 面对二维码地推无法分辨地区之间的优劣,我们该怎么做!
  9. pytho编码,关键字,注释,字符串形式,替换等变化基础常识
  10. 服务器突然关机的操作系统日志,windows服务器关机日志