When I create a class called Process
it looks like I'm experiencing class shadowing. For example:
public class Process {
//...
}
The existence of the above class prevents me implementing the Process.Plugin
interface. While it isn't a reserved word, here's an example class that I might attempt to save:
public class MyPlugin implements Process.Plugin {
public Process.PluginDescribeResult describe() {
return null;
}
public Process.PluginResult invoke(Process.PluginRequest request) {
return null;
}
}
and I'm immediately hit with the following compile error message:
Invalid type: Process.Plugin
At this point I'd thought this was a similar situation to creating a class called Account
or some other SObject name. When that happens, you can fully qualify Schema.Account
to differentiate them.
But it seems Process.Plugin
is already fully qualified; System.Process.Plugin
isn't a valid type.
Is there any way I can have a class called Process
in my org and still use Process.Plugin
?