Изучая MIDP 2.0...
Изучая исходники MIDP 2.0, обнаружил странную вещь:
Фрагмент абстрактного класса javax.microedition.lcdui.Canvas:
Никаких методов доступа к suppressKeyEvents в классе Canvas не предусмотрено.
Зато вот что есть в его потомке - классе javax.microedition.lcdui.game.GameCanvas:
То есть вместо того, чтобы объявить suppressKeyEvents protected или public, они пишут native method, умеющий в обход ограничений залезать в приватное поле! Но зачем??
Фрагмент абстрактного класса javax.microedition.lcdui.Canvas:
/**
* Used by GameCanvas to suppress Game action key events
*/
private boolean suppressKeyEvents; // = false
Никаких методов доступа к suppressKeyEvents в классе Canvas не предусмотрено.
Зато вот что есть в его потомке - классе javax.microedition.lcdui.game.GameCanvas:
/**
* Set a private field in the Canvas object. We use a
* native method to work around the package boundary.
* @param c this GameCanvas cast to a Canvas
* @param suppressKeyEvents whether or not to suppress key events
*/
private native void setSuppressKeyEvents(Canvas c,
boolean suppressKeyEvents);
То есть вместо того, чтобы объявить suppressKeyEvents protected или public, они пишут native method, умеющий в обход ограничений залезать в приватное поле! Но зачем??
