无法对非静态方法进行静态引用

2024-04-28

使用 Java 构建多语言应用程序。插入字符串值时出现错误R.string资源 XML 文件:

public static final String TTT =  (String) getText(R.string.TTT);

这是错误消息:

错误:无法从类型对非静态方法 getText(int) 进行静态引用 语境

这是如何引起的以及如何解决?


Since getText()是非静态的,您不能从静态方法中调用它。

要理解其中的原因,您必须了解两者之间的区别。

实例(非静态)方法适用于特定类型(类)的对象。这些是用 new 创建的,如下所示:

SomeClass myObject = new SomeClass();

要调用实例方法,您可以在实例上调用它(myObject):

myObject.getText(...)

However a static method/field can be called only on the type directly, say like this: The previous statement is not correct. One can also refer to static fields with an object reference like http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html myObject.staticMethod() but this is discouraged because it does not make it clear that they are class variables.

... = SomeClass.final

并且两者不能一起工作,因为它们操作不同的数据空间(实例数据和类数据)

让我尝试解释一下。考虑这个类(伪代码):

class Test {
     string somedata = "99";
     string getText() { return somedata; } 
     static string TTT = "0";
}

现在我有以下用例:

Test item1 = new Test();
 item1.somedata = "200";

 Test item2 = new Test();

 Test.TTT = "1";

价值观是什么?

Well

in item1 TTT = 1 and somedata = 200
in item2 TTT = 1 and somedata = 99

换句话说,TTT是该类型的所有实例共享的数据。所以说没有意义

class Test {
         string somedata = "99";
         string getText() { return somedata; } 
  static string TTT = getText(); // error there is is no somedata at this point 
}

所以问题是为什么TTT静态或为什么 getText() 不是静态的?

去除static它应该会克服这个错误 - 但如果不了解你的类型的作用,它只是一个粘贴膏药,直到出现下一个错误。有什么要求getText()要求它是非静态的?

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

无法对非静态方法进行静态引用 的相关文章

随机推荐

  • Ansible:即使成为 sudo 用户,也无法配置 sudo 命令

    testuser 是 sudo 用户 sudo cat etc sudoers d 90 cloud init testuser testuser ALL ALL NOPASSWD ALL 我可以手动登录 testuser 并在没有密码的情
  • Java 中的对象与扩展

    我可能是错的 因为我没有太多的 Java 经验 但这里有一个问题 我有一个包含许多方法的类 基本上它是一个简单的库 我创建了这个类的一个对象MyLibrary obj new MyLibrary parameters 这些参数设置库正确运行
  • 较新的三星设备无法在其内置短信应用程序中显示网页[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我打开一个 URL 时 比如https www google com https www google com 在三星内置消息应用程序中
  • clrscr() 不工作,getch() 工作。为什么?

    我正在做一个小C请求密钥并执行 switch 语句中的某些代码的程序 include
  • toastr.js 如何在 Aurelia 和 Typescript 中工作?

    我似乎无法让这些一起工作 我正在使用 Aurelia CLI 并以类似的方式成功地对其他库 如 select2 spin moment 和 numeric 进行了操作 但我似乎无法让 toastr 工作 这是我到目前为止所拥有的 首先我跑了
  • 并发.futures问题:为什么只有1个worker?

    我正在尝试使用concurrent futures ProcessPoolExecutor并行化串行任务 串行任务涉及从数字范围中查找给定数字的出现次数 我的代码如下所示 在执行过程中 我从任务管理器 系统监视器 顶部注意到 尽管给定了 m
  • Apple Mach-O 链接器警告“未找到选项目录...”

    我只是想摆脱像这样弹出的警告 ld warning directory not found for option F Users m Desktop FacebookSDK ld warning directory not found fo
  • System.Console 作为带有输入行的日志窗口

    我正在编写一个控制台应用程序 在文本滚动时需要用户在底行输入 这个想法是让文本滚动并在底部留下输入行 我想要文本编辑功能 箭头键 插入 删除等 我也希望能够拥有静态 状态行 不受滚动影响的行 A real world example wou
  • R:使用 dplyr 对列序列按行求和

    本着类似问题的精神here https stackoverflow com questions 28873057 sum across multiple columns with dplyr and here https stackover
  • 将文件拖放到 Microsoft Access 中

    我在 Microsoft Access 中有一个表单 允许用户将附件上传到每条记录 我想通过让用户将文件拖放到附件字段中来使其更加用户友好 执行此操作的最佳方法是什么 我该如何执行此操作 以下是拖放 附加 文件以便与 MS Access 一
  • 删除并添加回元素后,JQuery 单击功能不起作用

    这是我的点击功能 cal table tbody td on click function if this hasClass available alert asd 我遇到的问题是 在切换到下个月或上个月后 我在日历上的点击功能不起作用 例
  • 使用 FosUserBundle 分配角色

    我对 Symfony 真的很陌生 我正在尝试使用 FosUserBundle 向用户注册角色 但我无法管理如何做到这一点 实际上 我还集成了 PUGXMultiUserBundle 以便为两个不同的角色提供两种不同的形式 谁能帮我 提前致谢
  • MATLAB 引擎函数的输入参数

    我正在尝试使用 MATLAB 引擎在 Python 中调用 MATLAB 函数 但遇到一些问题 在设法将 NumPy 数组作为函数的输入处理后 现在 MATLAB 出现一些错误 MatlabExecutionError 未定义输入函数 si
  • 相机表面视图图像看起来被拉伸

    在纵向模式下 图像看起来垂直拉伸 在横向模式下 图像看起来水平拉伸 虽然捕获图像后以适当的尺寸显示 如何解决这个问题 您需要选择与您的显示尺寸相匹配的预览尺寸 我建议更改预览尺寸设置以匹配您的SurfaceView而不是相反 虽然预览数据很
  • SQL Server:多行的 SUM() 包括 where 子句

    我有一张如下所示的表 PropertyID Amount Type EndDate 1 100 RENT null 1 50 WATER null 1 60 ELEC null 1 10 OTHER null 2 70 RENT
  • Cakephp 验证后,所有表单字段都为空,并出现表单错误

    我有问题 我尝试填写表单 然后单击提交按钮 然后它显示表单错误 但所有文本框字段都变为空白 并且可以显示表单错误 我希望它变得与验证之前相同的值 就像我不想在验证后清除 清空值一样 我做了这样的事情 在视图中 div class regfo
  • Spark流吞吐量监控

    有没有办法监控 Spark 集群的输入和输出吞吐量 以确保集群不会被传入数据淹没和溢出 就我而言 我在 AWS EC2 上设置了 Spark 集群 所以我正在考虑使用AWS 云观察来监控网络输入 and 网络输出对于集群中的每个节点 但我的
  • 我无法使用 LWP::UserAgent 连接到任何 HTTPS 站点

    我正在尝试创建一个仅连接到网站的脚本 但是 由于某种原因 它不会连接到使用 HTTPS 的任何内容 我们在这里启用了代理 但是 我相信代理不是问题 因为如果我要连接到网络内部不通过代理建立隧道的 HTTPS 它仍然会失败 如果我要在任何不使
  • 删除多个对象 Amazon s3 PHP SDK

    我在一次删除多个对象时遇到问题 使用这个库 https github com aws aws sdk php laravel https github com aws aws sdk php laravel 我对使用该库的其他任何事情都没有
  • 无法对非静态方法进行静态引用

    使用 Java 构建多语言应用程序 插入字符串值时出现错误R string资源 XML 文件 public static final String TTT String getText R string TTT 这是错误消息 错误 无法从类