如何使用实例引用实例?

2023-11-30

我试图尽量减少创建实例的次数,因为我对 Java 不是特别熟练。目前我的 Main 中有一组其他类的实例,一个简单的例子......

public final class ClassName extends JavaPlugin {

    AntiSwear antiSwear = new AntiSwear();
    Spam spam = new Spam();

    @Override
    public void onEnable() {
        // Plugin startup logic
    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}

我不想创建越来越多的实例,而是想创建主类的一个实例,ClassName className = new ClassName();并运行类似的东西className.spam...

基本上将我的胡言乱语翻译成英语:我只是想看看如何使用实例来引用实例。


有几种方法可以解决这个问题。第一种方法是使用public访问修饰符:

public AntiSwear antiSwear = new AntiSwear();
public Spam spam = new Spam();

这使得可以从以下实例访问这些实例ClassName, 例如:

ClassName className = new ClassName();
className.spam...;
className.antiSwear...;

The second method involves getters and setters, which provide a method that can be invoked by any class that contains an instance and has access, or by a subclass:

AntiSwear antiSwear = new AntiSwear();
Spam spam = new Spam();

public AntiSwear getAnitSwear(){
    return this.antiSwear;
}
public Spam getAnitSwear(){
    return this.spam;
}

现在您可以相应地调用 getter:

ClassName className = new ClassName();
className.getSpam()...;
className.getAntiSwear()...;

第三种方法涉及static访问修饰符:

public static AntiSwear antiSwear = new AntiSwear();
public static Spam spam = new Spam();

这使得可以从以下位置访问实例every外部类,甚至那些不包含实例的类。这是因为:

static成员属于该类而不是某个 具体实例。

代表着只有一个实例static场地 存在即使您创建了一百万个实例 类或者你不创建任何类。它将被所有实例共享。

例如:

//Notice that I am not creating an instance, I am only using the class name
ClassName.spam...;
ClassName.antiSwear...;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用实例引用实例? 的相关文章

  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • NoInitialContextException:heroku 战争部署

    我一直在开发一个 J2EE 项目 并且在其中使用连接池 也通过部署在 heroku 上的数据库进行访问 我使用以下代码来设置 Connection 对象 Context initContext new InitialContext Cont
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • Reactive Spring 不支持 HttpServletRequest 作为 REST 端点中的参数?

    我创建了一个 RestController 如下所示 RestController public class GreetingController RequestMapping value greetings method RequestM
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • Logback:SizeAndTimeBasedRollingPolicy 不遵守totalSizeCap

    我正在尝试以一种方式管理我的日志记录 一旦达到总累积大小限制或达到最大历史记录限制 我最旧的存档日志文件就会被删除 当使用SizeAndTimeBasedRollingPolicy在 Logback 1 1 7 中 滚动文件追加器将继续创建
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • 通过 appassembler-maven-plugin 生成的脚本无法在 Spring Boot 应用程序中找到主类

    我使用 appassembler maven plugin 生成的启动脚本有问题 我有一个基本的 spring boot 应用程序 只有一个类 SpringBootApplication public class ScriptDemoApp
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • IntelliJ 组织导入

    IntelliJ 是否具有类似于 Eclipse 中的组织导入功能 我拥有的是一个 Java 文件 其中多个类缺少导入 例子 package com test public class Foo public Map map public J
  • Lombok @Builder 不创建不可变对象?

    在很多网站上 我看到 lombok Builder 可以用来创建不可变的对象 https www baeldung com lombok builder singular https www baeldung com lombok buil
  • 我可以限制分布式应用程序发出的请求吗?

    我的应用程序发出 Web 服务请求 提供商处理的请求有最大速率 因此我需要限制它们 当应用程序在单个服务器上运行时 我曾经在应用程序级别执行此操作 一个对象跟踪到目前为止已发出的请求数量 并在当前请求超出允许的最大负载时等待 现在 我们正在
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件

随机推荐

  • h1标签小于h2,全部在section标签内

    我的 h1 标签位于节标签内 比 h2 标签小 当 h1 标签位于部分标签之外时 其尺寸是正确的 我一直在浏览我的 CSS 页面 但没有发现任何可以实现这一点的东西 body font 100 1 4 Verdana Arial Helve
  • 方差分析无法进行多级分析 - “未为此 S4 类定义 $ 运算符”

    当尝试进行与多级分析相关的方差分析时 我在 R 中运行代码时遇到问题 我总是收到错误 未为此 S4 类定义 运算符 Model 0 Model without teams grand mean centered h2 0 gmc lt lm
  • Core-Plot:Interface Builder 文件中存在未知类 CPLayerHostingView

    Using 核心情节似乎不是一个容易的集成任务 标头路径已设置 在 Interface Builder 中我创建了一个CPLayerHostingView它属于由 Interface Builder 实例化的视图控制器 加载 nib 文件后
  • 6.0.0 版本中未安装 mongo.exe

    我从这里安装了 MongoDB 社区服务器link 但当我调查C Program Files MongoDB Server 6 0 bin 我无法找到 mongo exe 文件 我可以看到 mongod exe 和 mongos exe 有
  • C中的宏定义错误?

    define SOUND SPEED 0 034 int rtt round trip time in microsecond double distance distance double rtt SOUND SPEED 2 它抱怨错误
  • IE 忽略定位元素上的 Z-Index

    事实证明 IE 再次成为我生存的祸根 我正在开发的网站顶部有一个水平菜单 其中的一个项目会触发一个纯 CSS 菜单 该菜单绝对定位在父菜单 DIV 内 相对定位 这使得菜单可以完美地放置在 IE 和 W3C 兼容浏览器中 当我在页面下方有更
  • 在 C# 中使用 Windows 窗体隐藏/阻止选项卡

    问题是我有一个 登录窗口 和一个 主窗口 在按下登录按钮或 访客 按钮后调用 如果按登录按钮 整个系统都会出来 如果我按访客按钮 一个选项卡应该消失或被阻止或其他什么 private void visitant object sender
  • 按周/月//季度/年分区以突破分区限制?

    我有 32 年的数据想要放入分区表中 但是 BigQuery 说我超出了限制 4000 个分区 对于这样的查询 CREATE TABLE deleting day partition PARTITION BY FlightDate AS S
  • ClickOnce 和 .NET 5:用户设置未更新

    我已将我的一个 WPF 应用程序从 NET Framework 4 7 更新到 NET 5 它使用 ClickOnce 安装程序来安装更新 自从更改为 NET 5 以来 我使用 AssemblyVersion 来设置版本 而不是依赖 Cli
  • 如何命名一组类型边界? [复制]

    这个问题在这里已经有答案了 如果我有一长串必须在很多地方重复的类型界限 我该如何给它们命名 例如 如果不是 fn foo
  • 如何获取CSS类中元素的属性集

    我想读取元素的高度和宽度 div style width 50px div div class big div For box01我可以用height getElementById box01 style height 没关系 但对于 bo
  • 我在 Consumer 内部收到 NullPointerException

    我正在尝试生产者 消费者问题 但我不知道为什么我会遇到这样的问题java lang NullPointerException在消费者内部 package com import java util concurrent PriorityBlo
  • 使用 HTML Canvas 创建反射图像?

    我有以下代码 尝试将垂直镜像图像与透明背景颜色渐变结合起来 当组合这两种效果时 它失败了 我是否需要在画布上覆盖 PNG 渐变 而不是尝试让画布执行这两种操作
  • 从命令行进行 MariaDB 备份

    开发者控制台中用于创建备份的备份功能非常棒 然而 我希望能够实现自动化 有没有办法从 cf 命令行应用程序执行此操作 Thanks 这是不可能从cf cli 但是有一个API端点用于触发备份 API 文档 自定义扩展 Swisscom 应用
  • 导航到流。使用什么 URI(如果有)来解析相对链接?

    我有一个 WPF 应用程序 它使用
  • Laravel Vagrant Up SSH 问题

    我正在尝试在 homestead vagrant 的帮助下创建一个 Laravel 应用程序 我使用的是Windows 7开发环境 我正在使用按项目安装 并且在 Laravel 文档中我可以流浪我的项目 当我在项目中流浪时 我会陷入困境 S
  • 使用 Symfony DI 容器的原则 2

    我正在开发一个利用 Doctrine 2 的 Zend Framework 项目 我试图让 Symfony 的 DI 容器也与该项目一起工作 但我遇到了麻烦 假设我有一个类 Foo 需要注入两个实例 我可以毫无问题地设置一个 Symfony
  • 使用 lodash/Javascript 对数字数组进行排序

    我有一个字符串数组 如下所示 let arr 1 1 1 2 2 3 3 2 3 4 10 我想要如下的预期输出 1 1 1 2 2 2 3 3 3 4 10 我尝试了下面的代码 但它没有给我正确的结果 let arr 1 1 1 2 2
  • 如何从 javascript 调用 IBM Watson 服务

    我正在使用 IBM Watson 服务实现虚拟代理 我的应用程序是使用 Jquery Angular JS 和 Java 开发的 目前我正在从 java 中间层调用 watson 服务 但我想避免这种情况并直接从 javascript 调用
  • 如何使用实例引用实例?

    我试图尽量减少创建实例的次数 因为我对 Java 不是特别熟练 目前我的 Main 中有一组其他类的实例 一个简单的例子 public final class ClassName extends JavaPlugin AntiSwear a