如何从(静态)类中的类创建新的类实例?

2024-04-07

我是 Java 新手(有 C# 经验),

这就是我想做的:

public final class MyClass
{
    public class MyRelatedClass
    {
      ...
    }
}

public class OtherRandomClass
{
    public void DoStuff()
    {
       MyRelatedClass data = new MyClass.MyRelatedClass(); 
    }
}

这在 Eclipse 中给出了这个错误:

无法访问 BitmapEffects 类型的封闭实例。必须使用 BitmapEffects 类型的封闭实例来限定分配(例如 x.new A(),其中 x 是 BitmapEffects 的实例)。

这在 C# 中用静态类是可能的,这里应该怎么做呢?


你定义的方式MyRelatedClass,你需要有一个的实例 MyClass能够访问/实例化此类。

通常在 Java 中,当以下情况时使用此模式:MyRelatedClass需要访问 a 的某些字段MyClass实例(因此在编译器警告中引用了“封闭实例”)。

像这样的东西应该编译:

public void doStuff() {
   MyClass mc = new MyClass();
   MyRelatedClass data = mc.new MyRelatedClass(); 
}

然而,如果一个MyRelatedClass实例不需要访问其封闭实例的字段(MyClass的字段)那么你应该考虑定义MyRelatedClass作为静态类,这将允许您发布的原始代码进行编译。

嵌套类(您发布的内容)和静态嵌套类(astatic class在一个class)是在前者中,嵌套类属于的实例父类,而后者没有这样的关系——只有逻辑/命名空间关系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从(静态)类中的类创建新的类实例? 的相关文章

随机推荐

  • 如何访问随机网站? - Python

    如何生成随机但有效的网站链接 无论语言如何 事实上 它生成的网站语言越多样化越好 我一直在使用其他人网页上的脚本来做到这一点 我怎样才能不依赖这些随机站点转发脚本并制作自己的脚本 我一直这样做 import webbrowser from
  • Unix 'find' + 'grep' 语法与 awk

    我使用这一行在我所在目录及其所有子目录的文件中查找短语 B206 find exec grep s B206 print 当它尝试读取某些文件并实际上将 putty 中的标题栏更改为一堆奇怪的字符时 它会崩溃 例如 当它遇到子目录中的 jp
  • 使用 python lxml 将多个
    标签合并为一个标签

    我有一个 python 脚本来清理抓取的 html 内容 它使用 BeautifulSoup4 并且工作得很好 最近我决定学习 lxml 但我发现教程 对我来说 更难遵循 例如我使用下面的代码来合并多个 br 标记为一个 即如果有多个 br
  • typescript:如何扩展现有模块定义?

    我有一个为 extsting npm 包编写的声明文件 但似乎没有声明一种方法 我尝试声明它 但出现错误 请帮帮我 现有 d ts 文件的结构 declare module mongoose class Document interface
  • 尝试配置新的 webpack + angular2 项目,我收到错误 TS2384:重载签名必须全部是环境或非环境

    我正在尝试配置一个新的 webpack angular2 项目 但出现一些错误 当我使用 npm start 时 我收到很多这样的错误 ERROR in reflect metadata Reflect ts 953 21 error TS
  • 将视频从OBS流式传输到运行在heroku上并使用node-media-server的rtmp服务器

    我一直在使用react redux 节点媒体服务器和json 服务器开发这个类似Twitch 的应用程序 它允许用户通过将其 OBS 配置到服务器 URL 来直接流式传输视频 音频 并且流密钥等于在 React 应用程序中创建的流的 ID
  • 无法在詹金斯中创建“新工作”,“确定”按钮呈灰色

    我正在尝试在詹金斯创建一份新工作 即使将 项目名称 和项目类型设置为 自由式 确定 按钮也会显示为灰色 如所附屏幕截图所示 我在用 Windows 7 32 bit OS Jenkins version 1 619 谁能告诉如何解决这个问题
  • 我从来没有遇到过写得好的业务层。有什么建议吗?

    我环顾四周 看到了一些很棒的代码片段 用于定义规则 验证 业务对象 实体 等 但我不得不承认 我从未见过完整的优秀且编写良好的业务层 我只知道自己不喜欢什么 却不知道什么是好的 谁能指出一些好的 OO 业务层 或出色的业务对象 或者让我知道
  • 为什么 C# 不允许静态方法实现接口?

    为什么C 要这样设计 据我了解 接口仅描述行为 并用于描述实现特定行为的接口的类的合同义务 如果类希望在共享方法中实现该行为 为什么不应该呢 这是我的想法的一个例子 These items will be displayed in a li
  • SQL-计算计数(列)的百分比

    我有下面的代码 它计算事件列中出现的次数 SELECT event count event as event count FROM event information group by event event event count a 3
  • 查找与分组[重复]

    这个问题在这里已经有答案了 我想知道 groupBy 和 ToLookup 扩展方法之间有什么区别 让我们有一个像这样的对象列表 public class Person public uint Id get set public strin
  • 将间隔小于 15 天的行分组并分配最小/最大日期

    如果不同协议的 protocol opening date 彼此相差 15 天内 我需要在名为预期开始日期的另一列中将它们显示为一个协议 我不知道如何复制我的表格 但我会尽力解释 假设一个协议的 start date 为 24 01 201
  • 如何使用卡尔曼滤波器预测测量之间的 GPS 位置

    我研究了OpenCV卡尔曼滤波器的实现 并做了一些基本的鼠标指针模拟并了解了基础 我似乎错过了在我的应用程序中使用它的一些关键点 并希望这里有人可以提供一个小例子 使用具有速度和位置的简单模型 KF statePre at
  • 构造函数生成默认构造函数吗?

    有没有办法通过反射来确定构造函数是否是编译器生成的默认构造函数 或者还有其他办法吗 令人惊讶的是isSynthetic方法不提供此信息 因此无法使用 并且没有Generated存在注释 public class JavaTest publi
  • Google App 脚本在电子表格中查找文本并返回位置索引

    我是谷歌应用程序脚本的新手 我的 JavaScript 也不是很强 但这似乎都不是问题 因为我的代码在第一次运行时可以工作 但当我尝试再次调用它时 它会失败 简而言之 我试图拥有一个可以动态查找给定范围内给定文本的函数 虽然看起来可能有一个
  • R 中的转置和合并列[重复]

    这个问题在这里已经有答案了 对 R 来说相当陌生 我有一个以下格式的数据集 A B C 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 但我想要这种格式 A 1 A 2 A 3 A 4 A 5 B 1 B 2 B 3 etc S
  • CakePHP 错误:无法配置会话,设置 session.auto_start 失败

    我收到此错误 Error CakeSessionException Unable to configure the session setting session auto start failed 我正在使用 Cakephp 2 2 4
  • iOS应用程序如何设置Core蓝牙广告率?

    我运行 iPad 的 iOS 应用程序广告过于频繁 随后似乎向我的嵌入式蓝牙 LE 设备发送垃圾邮件 该设备正在从 iPad 读取广告数据 如何减慢 iPad 的广告速度 Core Bluetooth 中的广告速率不可设置 没有公共 API
  • 将列表分为两列

    我正在尝试构建一个无序列表 如下所示 Item 1 Item 4 Item 2 Item 5 Item 3 Item 6 我有这个 HTML div class multi column ul li Item 1 li li Item 2
  • 如何从(静态)类中的类创建新的类实例?

    我是 Java 新手 有 C 经验 这就是我想做的 public final class MyClass public class MyRelatedClass public class OtherRandomClass public vo