fork download
  1.  
  2. import javax.tools.ToolProvider;
  3.  
  4. class GetArrayClass {
  5. public static Class<?> viaGetClass() {
  6. return new String[0].getClass();
  7. }
  8. public static Class<?> viaClassLiteral() {
  9. return String[].class;
  10. }
  11. public static void main(String[] args) {
  12. decompile();
  13. }
  14. private static void decompile() {
  15. Object args = new String[]{"-c", GetArrayClass.class.getName()};
  16. try {
  17. ToolProvider.getSystemJavaCompiler().getClass().getClassLoader()
  18. .loadClass("com.sun.tools.javap.Main")
  19. .getMethod("main", String[].class).invoke(null, args);
  20. } catch(ReflectiveOperationException ex) {
  21. throw new IllegalStateException(ex);
  22. }
  23. }
  24. private GetArrayClass(){}
  25. }
  26.  
Success #stdin #stdout 0.77s 2316288KB
stdin
Standard input is empty
stdout
Compiled from "Main.java"
class GetArrayClass {
  public static java.lang.Class<?> viaGetClass();
    Code:
       0: iconst_0
       1: anewarray     #1                  // class java/lang/String
       4: invokevirtual #2                  // Method java/lang/Object.getClass:()Ljava/lang/Class;
       7: areturn

  public static java.lang.Class<?> viaClassLiteral();
    Code:
       0: ldc           #3                  // class "[Ljava/lang/String;"
       2: areturn

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #4                  // Method decompile:()V
       3: return
}