2015-03-20 2 views
0

После код хорошо компилируется JDK5 но JDK7 он выдает ошибку компиляции, говоряsun.font.FontDesignMetrics ошибка компиляции в JDK 7

"sun.font.FontDesignMetrics" является частным

FontUIResource fontUiResource = (FontUIResource) MyUI.get("MainTitle"); 
if (fontUiResource != null) { 
FontDesignMetrics fontMetrics = new FontDesignMetrics(fontUiResource); 

Я использую Intellij 12, на всякий случай, если это информация, связанная с проблемой.

+0

Почему вы используете какой-либо из классов «sun. *» Для начала? Они не являются публичным API, не документированы и подвержены поломке между версиями. – Makoto

+0

Я не добавил их в свой путь к классам, они есть по умолчанию. Код тот же, но дает ошибку при изменении версии JDK. – user85

+0

Да, они действительно там. Вопрос в том, с какой целью вы их используете? Они не являются частью общедоступного API, поэтому их подпись может меняться, и поломка может возникать между версиями. – Makoto

ответ

0

Кажется, что конструкторы были сделаны частными в jdk6. JavaDoc конструктора says: «Свойство private для включения кэширования - вместо вызова getMetrics()». Такое изменение, конечно, всегда является одним из рисков при использовании частного неподдерживаемого API.

Смежные вопросы