title: Public Java class named differently than file
body: <p>At one of the university classes we have to develop programs in Java. One of the requirements is to name all our files with pattern <code>surname_firstname_exerciseN_className.java</code>. Another requirement is that we must split our programs into multiple files. As you can imagine, these two don't play well together.</p>
  
  <p>I'm trying to work around this by "translating" my class names. For example, if I write a class named "Something", I do this in my <code>long_prefix_something.java</code> file:</p>
  
  <pre><code>public class long_prefix_something extends Something {}
  
  class Something {
      // class code
  }
  </code></pre>
  
  <p>And I want to use class Something in another file. So I do this in that other file:</p>
  
  <pre><code>class Something2 extends long_prefix_something { }
  </code></pre>
  
  <p>What bothers me, is that I can't translate <code>long_prefix_something</code> back to <code>Something</code> because of circular inheritance error, I have to use <code>Something2</code> instead.</p>
  
  <p>Is there anyway to overcome this? Any annotation to use or something similar?</p>