gpt4 book ai didi

java - 是否可以在不创建实例的情况下调用非静态方法?

转载 作者:行者123 更新时间:2023-12-02 03:44:48 26 4
gpt4 key购买 nike

对我来说,很明显这个问题的答案是,但就在今天我才来到了这条线

Context.setCredentials(userId, pwd.toCharArray());

其中setCredentials是非静态方法。 Intellij IDEA 将此突出显示为错误,因此我的项目未编译,但是,在 Eclipse 中一切都构建良好,怎么可能

解决这个问题不是问题,但我想了解为什么会发生这种情况。附注我可能认为这可能是非常特定于项目的。

更新

在调用 setCredentials 之前,会发生另一个调用:

Context.initContext()

在某个地方我们调用以下方法:

synchronized private static void initContext(String connectionString) {
if (_this == null) {
_this = new Context(connectionString);
}
}

其中 this 在同一个 Context 类中定义如下:

private static Context _this;

看起来它可能会工作,并且如果创建了我们的实例,Eclipse 就会正确显示它,但是,它位于类内部,代码非常奇怪。

最佳答案

清理并重新构建您的项目。要调用任何非静态方法,您必须拥有该类的实例。

注意:您不能在 Java 中的任何静态方法中访问非静态变量,但相反也可以,即您可以访问静态变量或从非静态方法调用静态方法,而不会出现任何编译时错误。

关于java - 是否可以在不创建实例的情况下调用非静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com