I use Java 8 (2014). The last positive addition to Java was in Java 6 (2006) which was the compiler API. Here are the changes to Java up to Java 8. Until recently I simply didn't look at newer versions of Java since I knew that humanity had become scum, no longer capable of improving anything. But little did I know how much damage modern scum has done to Java since Java 8, essentially destroying what was a good language.
My language Luan is written in Java and I use it at work. Someone I work with who uses Luan got a M1 Mac and couldn't find Java 8 for it, so he used a newer Java version which generates a warning when Luan is run. He asked me to look into it, so I downloaded Java 11 to see what is happening. And so I discovered the utterly disgusting Java Modules which is pure modern crap. And it can't be ignored because it destroys backward compatibility. In particular, old Java reflection no longer works. So now to avoid having to dig into into this disgusting crap to solve the issue, I would rather just ask Java programmers who know Java Modules, presumably on some forum. But of course I can't deal with modern scum at all, so I asked a friend who can tolerate modern scum better than I can to post this question to a Java forum. And here is what happened. I just see "[removed]". Here is the content that I asked him to post:
I need a general means to determine if reflective access is allowed to an object member. In Java 8, if the member is public and the class is public, then reflective access is allowed. In Java 11, this is no longer true. So how can I determine if reflective access is allowed to an object member in Java 11? Here is some sample code illustrating the problem:
import java.lang.reflect.*;
import javax.net.SocketFactory;
import javax.net.ssl.SSLSocketFactory;
public class Refl {
public static void main(String[] args) throws Exception {
//System.out.println(sun.security.ssl.SSLSocketFactoryImpl.class); // doesn't work
SocketFactory sf = SSLSocketFactory.getDefault();
SSLSocketFactory.class.getMethod("getDefaultCipherSuites").invoke(sf);
Class cls = sf.getClass();
System.out.println(cls);
System.out.println(Modifier.isPublic(cls.getModifiers()));
Method m = cls.getMethod("getDefaultCipherSuites");
System.out.println(m);
System.out.println(Modifier.isPublic(m.getModifiers()));
m.invoke(sf); // here is the issue
System.out.println("done");
}
}
While all modern scum (members of modern culture) are horrible creatures deserving death, modern programmers seem to be extra vile. My friend isn't a programmer, so I don't think he realized this, but now that he has to deal with them, he will see for himself just how bad modern programmers are. They can't even respond in a civilized manner to a basic programming question. They are utter scum.
[–][deleted] 3 insightful - 2 fun3 insightful - 1 fun4 insightful - 1 fun4 insightful - 2 fun - (8 children)
[–]fschmidt[S] 4 insightful - 2 fun4 insightful - 1 fun5 insightful - 1 fun5 insightful - 2 fun - (0 children)
[–]fschmidt[S] 3 insightful - 2 fun3 insightful - 1 fun4 insightful - 1 fun4 insightful - 2 fun - (6 children)
[–][deleted] 3 insightful - 2 fun3 insightful - 1 fun4 insightful - 1 fun4 insightful - 2 fun - (5 children)
[–]fschmidt[S] 3 insightful - 3 fun3 insightful - 2 fun4 insightful - 2 fun4 insightful - 3 fun - (4 children)
[–][deleted] 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (3 children)
[–]fschmidt[S] 2 insightful - 3 fun2 insightful - 2 fun3 insightful - 2 fun3 insightful - 3 fun - (1 child)
[–][deleted] 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (0 children)
[–]PastorJohnny 1 insightful - 2 fun1 insightful - 1 fun2 insightful - 1 fun2 insightful - 2 fun - (0 children)
[–]filbs111 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (4 children)
[–]fschmidt[S] 3 insightful - 2 fun3 insightful - 1 fun4 insightful - 1 fun4 insightful - 2 fun - (3 children)
[–]MONKEYBALLS 3 insightful - 3 fun3 insightful - 2 fun4 insightful - 2 fun4 insightful - 3 fun - (2 children)
[–]fschmidt[S] 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (1 child)
[–]MONKEYBALLS 2 insightful - 3 fun2 insightful - 2 fun3 insightful - 2 fun3 insightful - 3 fun - (0 children)
[–][deleted] (1 child)
[removed]
[–]fschmidt[S] 1 insightful - 2 fun1 insightful - 1 fun2 insightful - 1 fun2 insightful - 2 fun - (0 children)
[–]PastorJohnny 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 0 fun2 insightful - 1 fun - (3 children)
[–]fschmidt[S] 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (2 children)
[–]andrewblanchard 2 insightful - 2 fun2 insightful - 1 fun3 insightful - 1 fun3 insightful - 2 fun - (0 children)
[–]PastorJohnny 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 0 fun2 insightful - 1 fun - (0 children)