Muchos de mis funciones tiene una carga completa de código de validación justo debajo de las declaraciones:¿Existe alguna manera hermosa de afirmar las condiciones previas en los métodos de Java?
if (! (start < end)) {
throw new IllegalStateException("Start must be before end.");
}
me gustaría especificar Precisa los rangos válidos de ciertos insumos - por ejemplo, un A> B, C => 1 o str_d.length()> 0.
Dado que algunas de mis funciones tienen bastantes argumentos que deben ser validados, puedo terminar escribiendo una gran cantidad de placa de caldera solo para validar las condiciones previas. Estoy escribiendo una biblioteca que será utilizada principalmente por desarrolladores no técnicos, hemos encontrado que validar las entradas de funciones es la mejor manera de ayudar a nuestros usuarios a operar correctamente nuestra API. Cuanto antes planteemos un error, menos trabajo tendrán que hacer nuestros clientes.
Hay un método más elegante para especificar las condiciones previas, las condiciones posteriores (y posiblemente las condiciones invariantes) en mis métodos.
Un colega me habló de una característica del lenguaje de programación de Eiffel que permite describir las condiciones pre/post/invariantes de forma muy natural sin repetir un gran número de códigos repetitivos. ¿Hay algún complemento en el lenguaje Java que me permita usar algo de esta magia?
Sí, soy principalmente un desarrollador de pthon. Esta es la sintaxis que usaríamos en Python, sin embargo, observo que este tipo de aserción generalmente se desactiva en el tiempo de ejecución. Si finalizara, la respuesta sería absurda y el usuario podría perder horas depurando el problema. Necesito levantar inmediatamente un error. –
'assert start