Skip to content

Instantly share code, notes, and snippets.

@anna-is-cute
Last active August 29, 2015 14:05
Show Gist options
  • Save anna-is-cute/3d3bc3932f744f256911 to your computer and use it in GitHub Desktop.
Save anna-is-cute/3d3bc3932f744f256911 to your computer and use it in GitHub Desktop.
/*
* 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
}
)
)
)
;
}
}
@gdude2002
Copy link

(╯°□°)╯︵ ┻━┻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment