Unable to pass enum to a method
807599Dec 11 2006 — edited Dec 15 2006I am trying to use a enumation to list all the graphics drivers available and when I pass it from my main class to a another objects setGraphicsDriver method (with corresponding argument) I get the error:
init:
deps-jar:
Compiling 2 source files to C:\Documents and Settings\Sean\Desktop\Java Projects\EngineFramework\build\classes
C:\Documents and Settings\Sean\Desktop\Java Projects\EngineFramework\src\engineframework\Main.java:29: setGraphicsDriver(engineframework.IrrlichtEngine.GRAPHICS_MODE) in engineframework.IrrlichtEngine cannot be applied to (engineframework.Main.GRAPHICS_MODE)
ie.setGraphicsDriver(myobj);
1 error
BUILD FAILED (total time: 0 seconds)
Here is my main class:
package engineframework;
public class Main {
static enum GRAPHICS_MODE { NULL, SOFTWARE, OPENGL, DX8, DX9 }
public static void main(String[] args) {
IrrlichtEngine ie = new IrrlichtEngine();
GRAPHICS_MODE myobj = GRAPHICS_MODE.OPENGL;
ie.setGraphicsDriver(myobj);
ie.initialiseDevice();
}
}
The setGraphicsDriver method that fails:
public void setGraphicsDriver(GRAPHICS_MODE gm) {
System.out.println(gm); // debugging info
// Ensure that the gm GRAPHICS_MODE is actually initialised, if not set it to OPENGL
if(gm == null) {
gm = GRAPHICS_MODE.OPENGL;
}
switch(gm) {
case NULL:
graphicsDriver = E_DRIVER_TYPE.EDT_NULL;
break;
case SOFTWARE:
graphicsDriver = E_DRIVER_TYPE.EDT_SOFTWARE;
break;
case OPENGL:
graphicsDriver = E_DRIVER_TYPE.EDT_OPENGL;
break;
case DX8:
graphicsDriver = E_DRIVER_TYPE.EDT_DIRECT3D8;
break;
case DX9:
graphicsDriver = E_DRIVER_TYPE.EDT_DIRECT3D9;
break;
default:
graphicsDriver = E_DRIVER_TYPE.EDT_SOFTWARE;
break;
}
}
I am sure its something really silly but its driving me nuts :)