title: Static constructor methods in Java
body: <p>I'm not really sure what to call this, because "static constructor" seems to convey the concept of static initializer blocks, but my question has to do with style.</p>
  
  <p>Let's say I have a class <em>Weapon</em> that has your standard constructors for initializing a weapon's stats. This works fine, but sometimes I want to randomly generate a weapon. I could create a static method called <em>FromRandom</em> which creates a new <em>Weapon</em> with random stats and returns it. That way I could do something like this:</p>
  
  <pre><code>Weapon randWeapon = Weapon.FromRandom();
  </code></pre>
  
  <p>What's the consensus on this? Is this acceptable code?</p>