Static constructor methods in Java
<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>
