assert - Java 8 ClassFormatException for interface with static methods, but only when using assertions -


i started classformatexceptions couldn't explain relating interfaces static methods. pruned down test case:

public interface modifiertest {     public static final int delta = 10;      public static int increment(int value)     {         assert value > 0; // problem line         return value + delta;     } }  public class modifierexec {     public static void main(string[] args)     {         system.out.println(modifiertest.class);     } } 

without assertion in increment() method, fine. assertion, exception @ run time (compilation fine):

exception in thread "main" java.lang.classformaterror: illegal field modifiers in class modifiertest: 0x1018     @ java.lang.classloader.defineclass1(native method)     @ java.lang.classloader.defineclass(unknown source)     @ java.security.secureclassloader.defineclass(unknown source)     @ java.net.urlclassloader.defineclass(unknown source)     @ java.net.urlclassloader.access$100(unknown source)     @ java.net.urlclassloader$1.run(unknown source)     @ java.net.urlclassloader$1.run(unknown source)     @ java.security.accesscontroller.doprivileged(native method)     @ java.net.urlclassloader.findclass(unknown source)     @ java.lang.classloader.loadclass(unknown source)     @ sun.misc.launcher$appclassloader.loadclass(unknown source)     @ java.lang.classloader.loadclass(unknown source)     @ com.c4.camgen.modifierexec.main(modifierexec.java:7) 

this easy work round, i'm curious whether bug in java or correct (if strange) behaviour. can't find references assertions affecting field modifiers.

can tell me what's going on? running in eclipse kepler, under jdk 1.8.0_20.

first of all, eclipse has own compiler possible bug there, not in javac.

now, juno old version predates eclipse's support java 8 , earlier versions of java did not allow static methods in interface @ all. report gets confusing.

anyway, should upgrade luna work seamlessly java 8 in eclipse.


Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -