El proyecto Lombok hace que sea trivial implementar el código repetitivo en las clases. ¿Es eso posible con los atributos .NET? ¿Hay algún puerto .net allí?¿Cómo funciona el proyecto Lombok en Java y eso es posible en .NET usando atributos?
Respuesta
bien en Lombok una clase Java podría tener este aspecto
import lombok.Data;
@Data public class Cart {
private int id;
private DateTime created;
private int items;
private int status;
}
Mientras que en C# la misma clase se vería así
public class Cart {
public int Id { get; set; }
public DateTime Created { get; set; }
public int Items { get; set; }
public int Status { get; set; }
}
Así C# (3,0 en este ejemplo) obtiene más bien estrecha y sin cualquier otra biblioteca, pero cuando comienzas a agregar "final" a algunas propiedades, la parte mágica de "auto constructor" de Lombok realmente brilla. En cuanto a una alternativa de .Net, según entiendo, las anotaciones de .Net no proporcionan la capacidad de interceptar el código de bytes antes de que vaya al compilador (lo que Lombok usa con gran efecto), por lo que sus opciones están limitadas a alguna plantilla sistema + un script de compilación como nAnt. Esto sería un desastre para mantener.
No se puede interceptar la generación de código de bytes, pero hay algunas bibliotecas bastante sofisticadas para analizar los ensamblados finales. Puede usar campos públicos en el código y luego realizar un paso posterior a la creación reescribir todos los ensamblados involucrados para usar las propiedades generadas automáticamente. Pero no podrás lograr todo lo que hace Lombok con esta técnica. Mejor usar algo como T4 (generación de código) y clases parciales. –
@Jason su código C# no es realmente equivalente al código de Java: equals y hashCode faltan. Lombok también genera eso. – Jirka
Eso es verdad. Ha pasado bastante tiempo desde que escribí esa respuesta. He aprendido mucho más desde entonces, pero creo que mi punto aún se mantiene. Eso Lombok hace mucho automáticamente y el método que utiliza es (aún) exclusivo de Java. –
- 1. ¿El Proyecto Lombok funciona bien con Scala?
- 2. ¿El proyecto Lombok es adecuado para grandes proyectos de Java?
- 3. Error al compilar el proyecto mixto Java/Scala y Lombok
- 4. Maven Groovy y Java + Lombok
- 5. ¿Constructor explícito usando Lombok?
- 6. Pruebas unitarias en Java, ¿qué es eso?
- 7. Parece que Lombok no funciona en pruebas unitarias
- 8. Escapar solo lo necesario, ¿es eso posible?
- 9. ¿Alguien ha usado Ant4Eclipse con el Proyecto Lombok?
- 10. ¿Cuáles son los riesgos con el Proyecto Lombok?
- 11. Inyección Dll - ¿Qué es posible con eso?
- 12. ¿Es posible combinar múltiples atributos en F #?
- 13. ASP.Net FindControl no funciona - ¿Cómo es posible?
- 14. ¿Es posible el registro pasivo en .NET?
- 15. ¿Es posible agregar atributos multivalor en DynamoDB?
- 16. HttpPost funciona en el proyecto Java, no en Android
- 17. Usando el archivo Java JAR en .NET
- 18. Usando tinyurl.com en una aplicación .Net ... ¿es posible?
- 19. Agregar MOQ a un proyecto .NET 4.0 no es posible
- 20. ¿Es caro el uso de atributos en .Net (C#)?
- 21. Atributos y excepciones personalizados en .net
- 22. ¿Es posible usar SBT en un proyecto de Java con Hibernate y AspectJ?
- 23. ¿Es posible getMethods en orden usando reflexiones?
- 24. En Protobuf-net, ¿es posible serializar clases no decoradas?
- 25. Referencias condicionales en el proyecto .NET, ¿es posible eliminar la advertencia?
- 26. ¿Es posible tener múltiples atributos de datos- {nombre} en HTML5?
- 27. Lombok con hibernación
- 28. ¿Es posible ejecutar archivos binarios en Java?
- 29. Target .net 4.5 pero implementar en .net 4.0 ¿es posible?
- 30. Lombok con Play 2
¿.Net ya no tiene propiedades? – Goibniu
@Rlmeq sí, pero vea este ejemplo http://projectlombok.org/features/Data.html. Casi parece magia con un único atributo – suhair