Last active
August 29, 2015 14:05
-
-
Save anna-is-cute/3d3bc3932f744f256911 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
/* | |
* RULES! | |
* 01. Everything must be accessed via Reflection. EVERYTHING. Exceptions: | |
* - java.lang.Class#forName(String) | |
* - java.lang.Class#getDeclaredField(String) | |
* - java.lang.Class#getDeclaredMethod(String, Object...) | |
* - java.lang.Class#getDeclaredConstructor(Object...) | |
* - java.lang.reflect.Field#get(Object) | |
* - java.lang.reflect.Method#invoke(Object...) | |
* - java.lang.reflect.Constructor#newInstance(Object...) | |
* Methods that accept varargs may be called without them, if applicable (no need to create an empty array). | |
* 02. No direct String literals except for TWO empty String literals (""). | |
* 03. You must use fully qualified names for everything. | |
* 04. All primitives must be boxed/unboxed at least twice. | |
* 05. In addition to no direct String literals, StringBuilders must be used for all Strings. | |
* 06. If a number primitive fits into a smaller one (e.g. 1 is an int, but fits into byte), it must be cast. | |
* 07. Every place you can insert a linebreak, do so. | |
* 08. No indentation. | |
* 09. No comments (besides this one). | |
* 10. No variables (besides args for main method and ONE other of any type). | |
* 11. No imports. | |
* 12. No methods besides main(String[]). | |
* 13. Must output "Hello!" without quotes. | |
*/ | |
public | |
class | |
HolyShit | |
{ | |
public | |
static | |
void | |
main | |
( | |
final | |
String | |
args | |
[ | |
] | |
) | |
throws | |
Exception | |
{ | |
final | |
java | |
. | |
lang | |
. | |
reflect | |
. | |
Method | |
valueOf | |
= | |
java | |
. | |
lang | |
. | |
Class | |
. | |
forName | |
( | |
"" | |
+ | |
( | |
char | |
) | |
106 | |
+ | |
( | |
char | |
) | |
97 | |
+ | |
( | |
char | |
) | |
118 | |
+ | |
( | |
char | |
) | |
97 | |
+ | |
( | |
char | |
) | |
46 | |
+ | |
( | |
char | |
) | |
108 | |
+ | |
( | |
char | |
) | |
97 | |
+ | |
( | |
char | |
) | |
110 | |
+ | |
( | |
char | |
) | |
103 | |
+ | |
( | |
char | |
) | |
46 | |
+ | |
( | |
char | |
) | |
83 | |
+ | |
( | |
char | |
) | |
116 | |
+ | |
( | |
char | |
) | |
114 | |
+ | |
( | |
char | |
) | |
105 | |
+ | |
( | |
char | |
) | |
110 | |
+ | |
( | |
char | |
) | |
103 | |
) | |
. | |
getDeclaredMethod | |
( | |
"" | |
+ | |
( | |
char | |
) | |
118 | |
+ | |
( | |
char | |
) | |
97 | |
+ | |
( | |
char | |
) | |
108 | |
+ | |
( | |
char | |
) | |
117 | |
+ | |
( | |
char | |
) | |
101 | |
+ | |
( | |
char | |
) | |
79 | |
+ | |
( | |
char | |
) | |
102 | |
, | |
char | |
[ | |
] | |
. | |
class | |
) | |
; | |
java | |
. | |
lang | |
. | |
Class | |
. | |
forName | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
106 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
118 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
46 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
110 | |
, | |
( | |
char | |
) | |
103 | |
, | |
( | |
char | |
) | |
46 | |
, | |
( | |
char | |
) | |
83 | |
, | |
( | |
char | |
) | |
121 | |
, | |
( | |
char | |
) | |
115 | |
, | |
( | |
char | |
) | |
116 | |
, | |
( | |
char | |
) | |
101 | |
, | |
( | |
char | |
) | |
109 | |
} | |
) | |
) | |
. | |
getDeclaredField | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
111 | |
, | |
( | |
char | |
) | |
117 | |
, | |
( | |
char | |
) | |
116 | |
} | |
) | |
) | |
. | |
get | |
( | |
null | |
) | |
. | |
getClass | |
( | |
) | |
. | |
getDeclaredMethod | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
112 | |
, | |
( | |
char | |
) | |
114 | |
, | |
( | |
char | |
) | |
105 | |
, | |
( | |
char | |
) | |
110 | |
, | |
( | |
char | |
) | |
116 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
110 | |
} | |
) | |
, | |
Object | |
. | |
class | |
) | |
. | |
invoke | |
( | |
Class | |
. | |
forName | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
106 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
118 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
46 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
110 | |
, | |
( | |
char | |
) | |
103 | |
, | |
( | |
char | |
) | |
46 | |
, | |
( | |
char | |
) | |
83 | |
, | |
( | |
char | |
) | |
121 | |
, | |
( | |
char | |
) | |
115 | |
, | |
( | |
char | |
) | |
116 | |
, | |
( | |
char | |
) | |
101 | |
, | |
( | |
char | |
) | |
109 | |
} | |
) | |
) | |
. | |
getDeclaredField | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
111 | |
, | |
( | |
char | |
) | |
117 | |
, | |
( | |
char | |
) | |
116 | |
} | |
) | |
) | |
. | |
get | |
( | |
null | |
) | |
, | |
Class | |
. | |
forName | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
106 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
118 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
46 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
97 | |
, | |
( | |
char | |
) | |
110 | |
, | |
( | |
char | |
) | |
103 | |
, | |
( | |
char | |
) | |
46 | |
, | |
( | |
char | |
) | |
83 | |
, | |
( | |
char | |
) | |
116 | |
, | |
( | |
char | |
) | |
114 | |
, | |
( | |
char | |
) | |
105 | |
, | |
( | |
char | |
) | |
110 | |
, | |
( | |
char | |
) | |
103 | |
, | |
( | |
char | |
) | |
66 | |
, | |
( | |
char | |
) | |
117 | |
, | |
( | |
char | |
) | |
105 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
100 | |
, | |
( | |
char | |
) | |
101 | |
, | |
( | |
char | |
) | |
114 | |
} | |
) | |
) | |
. | |
getDeclaredConstructor | |
( | |
String | |
. | |
class | |
) | |
. | |
newInstance | |
( | |
( | |
java | |
. | |
lang | |
. | |
String | |
) | |
valueOf | |
. | |
invoke | |
( | |
null | |
, | |
new | |
char | |
[ | |
] | |
{ | |
( | |
char | |
) | |
72 | |
, | |
( | |
char | |
) | |
101 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
108 | |
, | |
( | |
char | |
) | |
111 | |
, | |
( | |
char | |
) | |
33 | |
} | |
) | |
) | |
) | |
; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(╯°□°)╯︵ ┻━┻