Last active
August 29, 2015 14:06
-
-
Save jimbaker/1a1e78da425bbdf0b50b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ jython27 -Dpython.security.respectJavaAccessibility=false | |
Jython 2.7b3+ (default:68aaff268c3c, Sep 10 2014, 20:03:31) | |
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_21 | |
>>> from org.python.tests import Invisible | |
>>> dir(Invisible) | |
['EXTRA_ARG_PUBLIC_METHOD', 'EXTRA_ARG_PUBLIC_STATIC_METHOD', 'OVERLOADED_EXTRA_ARG_PUBLIC_METHOD', 'OVERLOADED_PROTECTED_METHOD', 'OVERLOADED_PUBLIC_METHOD', 'OVERLOADED_PUBLIC_STATIC_METHOD', 'OVERLOADED_STATIC_METHOD', 'PACKAGE_FIELD', 'PACKAGE_METHOD', 'PACKAGE_STATIC_FIELD', 'PACKAGE_STATIC_METHOD', 'PROTECTED_FIELD', 'PROTECTED_METHOD', 'PROTECTED_STATIC_FIELD', 'PROTECTED_STATIC_METHOD', 'PUBLIC_FIELD', 'PUBLIC_METHOD', 'PUBLIC_METHOD_FIELD', 'PUBLIC_STATIC_FIELD', 'PUBLIC_STATIC_METHOD', 'PUBLIC_STATIC_METHOD_FIELD', 'SUBCLASS_OVERLOAD', 'SUBCLASS_OVERRIDE', 'SUBCLASS_STATIC_OVERLOAD', 'SUBCLASS_STATIC_OVERRIDE', 'SUBVISIBLE_SHARED_NAME_FIELD', 'UNUSED', 'VISIBLE_SHARED_NAME_FIELD', '__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__ensure_finalizer__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__subclasshook__', '__unicode__', 'class', 'clone', 'equals', 'finalize', 'getClass', 'hashCode', 'notify', 'notifyAll', 'packageField', 'packageMethod', 'packageStaticField', 'packageStaticMethod', 'privateField', 'privateMethod', 'privateStaticField', 'privateStaticMethod', 'protectedField', 'protectedMethod', 'protectedStaticField', 'protectedStaticMethod', 'registerNatives', 'toString', 'wait'] | |
>>> x = Invisible() | |
>>> x.privateField | |
0 | |
>>> x.privateMethod() | |
7 | |
# Note the differences when run without accessiblity - we don't see private methods, we cannot call the private constructor | |
$ jython27 | |
Jython 2.7b3+ (default:68aaff268c3c, Sep 10 2014, 20:03:31) | |
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_21 | |
Type "help", "copyright", "credits" or "license" for more information. | |
>>> from org.python.tests import Invisible | |
>>> dir(Invisible) | |
['EXTRA_ARG_PUBLIC_METHOD', 'EXTRA_ARG_PUBLIC_STATIC_METHOD', 'OVERLOADED_EXTRA_ARG_PUBLIC_METHOD', 'OVERLOADED_PROTECTED_METHOD', 'OVERLOADED_PUBLIC_METHOD', 'OVERLOADED_PUBLIC_STATIC_METHOD', 'OVERLOADED_STATIC_METHOD', 'PACKAGE_FIELD', 'PACKAGE_METHOD', 'PACKAGE_STATIC_FIELD', 'PACKAGE_STATIC_METHOD', 'PROTECTED_FIELD', 'PROTECTED_METHOD', 'PROTECTED_STATIC_FIELD', 'PROTECTED_STATIC_METHOD', 'PUBLIC_FIELD', 'PUBLIC_METHOD', 'PUBLIC_METHOD_FIELD', 'PUBLIC_STATIC_FIELD', 'PUBLIC_STATIC_METHOD', 'PUBLIC_STATIC_METHOD_FIELD', 'SUBCLASS_OVERLOAD', 'SUBCLASS_OVERRIDE', 'SUBCLASS_STATIC_OVERLOAD', 'SUBCLASS_STATIC_OVERRIDE', 'SUBVISIBLE_SHARED_NAME_FIELD', 'UNUSED', 'VISIBLE_SHARED_NAME_FIELD', '__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__ensure_finalizer__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__subclasshook__', '__unicode__', 'class', 'equals', 'getClass', 'hashCode', 'notify', 'notifyAll', 'toString', 'wait'] | |
>>> x = Invisible() | |
Traceback (most recent call last): | |
File "<stdin>", line 1, in <module> | |
TypeError: No visible constructors for class (org.python.tests.Invisible) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment