Immutables alternatives and similar libraries
Based on the "Development" category.
Alternatively, view Immutables alternatives based on common mentions on social networks and blogs.
-
JHipster
JHipster, much like Spring initializr, is a generator to create a boilerplate backend application, but also with an integrated front end implementation in React, Vue or Angular. In their own words, it "Is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures." -
JavaParser
Java 1-21 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities. -
CircleMenu for Android
:octocat: ⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Android UI library made by @Ramotion -
Better Error Pages
Rails like error pages for Spring Boot applications that are only active in development. -
NoException
Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Immutables or a related project?
README
Read full documentation at http://immutables.org
Modern usage style, aka "sandwich"
// Define abstract value type using interface, abstract class or annotation
@Value.Immutable
public interface ValueObject extends WithValueObject {
// WithValueObject is not yet generated, We extend With* to inherit `with*` method signatures
String getName();
List<Integer> getCounts();
Optional<String> getDescription();
class Builder extends ImmutableValueObject.Builder {}
// ImmutableValueObject.Builder will be generated and
// our builder will inherit and reexport methods as it's own.
// Static nested Builder will inherit all the public method
// signatures of ImmutableValueObject.Builder
}
// Use generated immutable implementation and builder
ValueObject v =
new ValueObject.Builder()
.name("Nameless")
.description("present")
.addCounts(1)
.addCounts(2)
.build();
v = v.withName("Doe");
//fetch values via standard getters
List<Integer> counts = v.getCounts();
Optional<String> description = v.getDescription();
ImmutableValueObject then would not be used outside of generated type. See about this and other generation styles here
License
Copyright 2013-2021 Immutables Authors and Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
See releases tab for release history. Archived [changelog](.archive/CHANGELOG.md) for earlier releases.
*Note that all licence references and agreements mentioned in the Immutables README section above
are relevant to that project's source code only.