Understanding the com.sun.* APIs being (ab)used by the community

David DeHaven david.dehaven at oracle.com
Mon Jun 8 16:48:40 UTC 2015


It'll work as long as the class in question (Screen in this case) is exported. If not, you'll likely get a security exception or CNFE.

-DrD-

> On Jun 5, 2015, at 8:28 AM, Kevin Rushforth <kevin.rushforth at oracle.com> wrote:
> 
> Yes, this will still work, although dipping into non-public state continues to be something we wouldn't recommend that an application rely on...
> 
> -- Kevin
> 
> 
> Dr. Michael Paus wrote:
>> As nobody has stated it explicitly so far I would like to ask what will happen
>> to classes in Java9 which access methods that are within the javafx namespace but
>> are declared private? Will code like this still work or not?
>> 
>>    public static double getPixelScale(Screen screen) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
>>        Method m = Screen.class.getDeclaredMethod("getScale");
>>        m.setAccessible(true);
>>        return ((Float) m.invoke(screen)).doubleValue();
>>    }
>> 
>> This hack for example is currently necessary because there is no other way to get at
>> the current pixel scale of a HiDPI screen.
>> 
>> 
>> 



More information about the openjfx-dev mailing list