wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes non-static method cannot be referenced from a static context Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "non-static method cannot be referenced from a static context" Watch "non-static method cannot be referenced from a static context" New topic
Author

non-static method cannot be referenced from a static context

Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 74
I'm getting this error

I know that I can't get to the non static method in that class so how do I use it?mainProgVideoStore.java:80: non-static method newCVideo(java.lang.String,int) cannot be referenced from a static context
Customer.newCVideo(title, vAmount);



And this is the method I want to use. in my Customer class
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

You have a non static method- newCVideo in Customer class- So to access this you need to create an instance of Customer Class. Or you have to declare the method as static in Customer class.


Mohamed Sanaulla | My Blog
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 74
When you say I have to create an instance of Customer Class do you mean something like this
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19656
    
  18

Yes, but you've already done that:


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

So if you have an instance method (or a non static method) - How do you access that method? Via the class name or via the instance name?
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19656
    
  18

Instance name.
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 74
So now I have to make the newCVideo visible I have to make it static, ok well when I try that the compiler doesn't like that either and gives me the same error message because I'm using other nonstatic methods in that method. Would I have to make all of those methods static too?
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

You have created an Instance of Customer in line 12. You can used that to invoke the method. Rarely do we use static methods.
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 74
How do I use it because I thought I already was when I did the Customer.newCVList.....
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

Ok, let me take a simpler example (your code is huge to explain).


So you can see in the above code- how instance method and static method are accessed. So in your context- you should be using the instance newCVideo created in line 12.

PS: This is not a fully working code- Made it simpler to understand for the OP.

Update: I have been talking about the line 80 in mainProgVideoStore. Because that's where the exception is seen.

Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 74
so this works only because you put my in front of class Customer?
Mohamed Sanaulla
Saloon Keeper

Joined: Sep 08, 2007
Posts: 3068
    
  33

Dustin Schreader wrote:so this works only because you put my in front of class Customer?


myCustomer is the name of the Customer instance- It can be anything- ourCustomer, customer, theCustomer, oneCustomer (any name which doesnt violate the naming convention, is not a keyword,reserved word and not the name of the Class).

In your case- You have a non-static method- newCVideo in Customer class. So to call/invoke this method(line 80) you would have to use an instance of Customer class (which you have created in line 12 of mainProgVideoStore). So the line 80 would now be:


Note: Pretty confusing to have the method and object name to be similar.
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 74
ok I understand, to lessen the confusion I changed it to myCustomer instead, thank you!
 
Consider Paul's rocket mass heater.
 
subject: non-static method cannot be referenced from a static context
 
Similar Threads
Using a method to return different string depending on situation
package does not exist
Two scanner FileReader
trying to call a method but cannot find symbol
no such element help