当前位置: 首页 > 知识库问答 >
问题:

不能从静态上下文[重复]引用非静态方法

公西兴业
2023-03-14

下面的代码出现在我试图创建的包的主类中。它引用了一个名为Journey的helper类中的对象和方法。在用星号标记的行中调用journeycost方法时,我得到一个“Non static method conly be referenced from static context”错误。这使我感到困惑,因为我的印象是,在第二行中创建的Journey对象“ThisJourney”构成了类的一个实例,因此意味着上下文不是静态的。先谢谢你Seany。

public boolean journey(int date, int time, int busNumber, int journeyType){
        Journey thisJourney = new Journey(date, time, busNumber, journeyType);

        if (thisJourney.isInSequence(date, time) == false)
        {
            return false;            
        }
        else
        {
            Journey.updateCurrentCharges(date);

            thisJourney.costOfJourney = Journey.journeyCost(thisJourney);***** 
            Journey.dayCharge = Journey.dayCharge + thisJourney.costOfJourney;
            Journey.weekCharge = Journey.weekCharge + thisJourney.costOfJourney;
            Journey.monthCharge = Journey.monthCharge + thisJourney.costOfJourney;

            Balance = Balance - thisJourney.costOfJourney;
            jArray.add(thisJourney);
        }

    } 

共有1个答案

章青青
2023-03-14

该错误意味着您试图以静态方式调用非静态方法,比如下面这个方法:

 Journey.journeyCost(thisJourney);

JourneyCost()声明为静态吗?您不是说thisjourney.journeycost()吗?

另外,您应该使用getter和setter来修改和访问您的成员变量,因此不是:

Journey.dayCharge = ...
Journey.setDayCharge(Journey.getDayCharge() + thisJourney.getCostOfJourney());

(在这种情况下,SetDayChargeGetDayCharge需要是静态的)

 类似资料:
  • 问题出现在< code>openConnection()中。我已经尝试了所有的解决方案,它们都不起作用。有没有人能救救我,把解决方案写的详细一点,让我能看懂?

  • 问题内容: 我想一劳永逸地理解这一点。 为此,请原谅下面粘贴的大量代码,但是我不想遗漏任何细节。 我唯一更改的是加载的URL。但这不会导致错误。 我想将我的函数称为“ readPosiitons ”。简单的解决方案,使其静态。真正的解决方案,我不确定。 请帮助我更好地了解如何以正确的方式解决此错误。 谢谢!! 问题答案: 真正的解决方案?不要在方法中放太多东西。那是给菜鸟的。 Java是一种面向对

  • 所以我尝试绑定我的Numpad键,以便在计算器应用程序中使用它们,但当我尝试从主窗口以字符串形式发送keyEvent时。java到我的MainWindowController公共void方法它给了我一个错误“不能从静态上下文引用非静态方法”,即使我的类都不是静态的?以下是主窗口代码: } 这里是MainWindowController文件(看keyPress方法)

  • 我想更改FrameLayout的背景。这是我现在使用的代码: 但出现以下错误: 无法从静态上下文引用非静态方法“setBackground(android.graphics.drawable.drawable)”。 怎么了?

  • 我从这行中得到了“无法从静态上下文引用非静态方法”错误:

  • mainactivity.java: xmlReader.java: (如果需要,我也可以为station.java和dbhandler.java添加代码) 我怎样才能绕过这个编程悖论呢?我通常能为这里的任何问题找到答案,但这是我第一次找不到答案。如果你知道我错过的解决方案的链接,请在下面发布。多谢。