Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

int cannot be dereferenced

Tags:

java

java-me

I am beginning in java (I'm learning in microedition) and I got this error: "int cannot be dereferenced" in the following class:

class DCanvas extends Canvas{
    public DCanvas(){

    }

    public void drawString(String str, int x, int y, int r, int g, int b){
        g.setColor(r, g, b); //The error is here
        g.drawString(str, x, y, 0); //and here
    }

    public void paint(Graphics g){
        g.setColor(100, 100, 220);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
}

What am I doing wrong here? Well I came from PHP and ECMAScripts where I was able to pass my function arguments this way so I really don't understand this error.

like image 921
Delta Avatar asked Mar 08 '10 14:03

Delta


People also ask

What does int Cannot be dereferenced mean?

Int cannot be dereferenced: Java The type int is a primitive and not an object. Dereferencing is the process of accessing the value referred to by a reference . Since, int is already a value (not a reference), it can not be dereferenced.

What type of variable Cannot be dereferenced?

As we can see in the example mentioned above is an integer(int), which is a primitive type, and hence it cannot be dereferenced.

What is float Cannot be dereferenced?

float is a primitive type, you cannot call methods on primitive types. Where did you declare getBalance() , widraw() and deposit() methods? You should call them on instances of objects of that type. This is only an example.


1 Answers

The g in drawString is the color value you've passed in, not your Graphics reference. So the error is when you're trying to call a method on an int, which you can't do.

//            Passing an integer 'g' into the function here |
//                                                          V
public void drawString(String str, int x, int y, int r, int g, int b){
//  | This 'g' is the integer you passed in
//  V
    g.setColor(r, g, b);
    g.drawString(str, x, y, 0);
}
like image 155
T.J. Crowder Avatar answered Oct 12 '22 11:10

T.J. Crowder