【发布时间】:2013-11-20 14:41:21
【问题描述】:
我有一个类,其中有一些静态方法和一些非静态方法,所以当我尝试从静态方法访问非静态方法时,我得到了那个著名的错误。每当我在这个论坛上搜索时,我都会在有两门课程时得到解决方案,而您正试图从一门课程中找到另一门课程。我的问题是如果它们在同一个类中,如何从静态方法调用非静态方法?
我正在尝试
new ClassName().methodName();
但我的方法包含 Intent 和 finish() 的发送,所以如果我创建的对象不是 finish(),则无法正常工作。
【问题讨论】:
-
类在哪里没有区别(在极少数情况下可能)。专注于了解
static成员是什么。 -
如果您尝试从静态上下文中调用非静态
method,问题将是“哪个”。您的类可能有数千个对象,每个对象都有自己的method方法 -
想象一下吧。有一个带有 Car 蓝图的工厂,现在 car 有诸如 howManyCarsHaveBeenBuilt() 之类的静态方法,但也有诸如
accelerate()之类的非静态方法。如果你戳蓝图说accelerate()你想加速十亿辆汽车中的哪一个?
标签: java methods static non-static