java - 无法对非静态方法进行静态引用 (Java)

标签 java methods reference static

g.drawString(p2.getName(), 800 - FontMetrics.stringWidth(p2.getName()), 40);

该行导致错误“无法从 FontMetrics 类型对非静态方法 stringWidth(String) 进行静态引用。

getName() 方法是在玩家类中定义的,p2 是该类的实例,所以我不明白 p2.getName() 是如何实现的是静态引用。

最佳答案

您需要使用 FontMetrics 的实例。您可以从 Graphics 对象获取一个:

g.drawString(p2.getName(), 800 - g.getfontMetrics().stringWidth(p2.getName()), 40);

关于java - 无法对非静态方法进行静态引用 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17436313/

相关文章:

c++ - 如何有效地将左值或右值绑定(bind)到同一个引用?

java - 如何在 Kotlin 中编写以下代码以实现回调

java - 线程中的异常 "main"java.util.NoSuchElementException : No line found at java. util.Scanne

python - 通过标识而不是相等从 python 列表中删除元素

java - 调用/调用 void 方法(Java 作业 - 生命游戏示例)

java - 使用 .clone() 方法和 = 号克隆对象有什么区别?

javascript - 复制对 native JavaScript 方法的引用是否安全?

java - 什么是取消引用可能的空指针?

java - 如何调试 Android 后台服务?

java - For循环卡在0处