Dziś natknąłem się na zaciemnioną klasę (dużo zakamuflowanych zajęć w słoiku) i nie mam pojęcia, jak dokonuje się tego rodzaju zaciemnianie.W jaki sposób robi się zaciemnianie w Javie?
Przykład:
protected void a(ChannelHandlerContext ☃, ByteBuf ☃, ByteBuf ☃)
throws Exception
{
int ☃ = ☃.readableBytes();
if (☃ < this.c)
{
☃.b(0);
☃.writeBytes(☃);
}
else
{
byte[] ☃ = new byte[☃];
☃.readBytes(☃);
☃.b(☃.length);
this.b.setInput(☃, 0, ☃);
this.b.finish();
while (!this.b.finished())
{
int ☃ = this.b.deflate(this.a);
☃.writeBytes(this.a, 0, ☃);
}
this.b.reset();
}
}
}
Jak widać powyżej, wszystkie zmienne parametryczne są snow-man. Jak można to cofnąć? Również, jak to się dzieje w pierwszej kolejności; W jaki sposób JVM może "przetworzyć" te i wykonać kod bez żadnego problemu?
Aby wyjaśnić, nie zamierzam używać tego kodu, służy on wyłącznie celom edukacyjnym. Biorę kurs informatyki w szkole, ponieważ uczymy się języka Java i mówimy o ograniczeniach, takich jak dekompilacja. Chciałbym dowiedzieć się więcej, więc zdecydowałem się rzucić okiem na większe projekty, zwłaszcza serwery. Ten fragment kodu jest wyciągany z serwera Spigot dla Minecraft (Gra), który jest widelcem serwera Bukkit dla Minecraft, który miał być open source.
To znak Unicode jak każdy inny znak Unicode. Dlaczego miałbyś oczekiwać, że to nie zadziała? – SLaks
Cóż, widzę twój punkt, wiem, że jest i jest "\ u2603" konkretnie, ale nie rozumiem, jak można to zrobić, i cofnąć ...: -) Dzięki. –
To tak jak każda inna nazwa zmiennej. Możesz na przykład nazwać zmienną 'x'.To jest tylko zmienna o nazwie "☃". Nie ma "zrobionego" lub "cofniętego", po prostu można napisać nazwę zmiennej z dowolnymi znakami. –