| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Opt<T> is a powerful functional alternative to Optional<T> in Java, inspired by Rust and leveraging a sealed hierarchy to enforce strict type control.
Opt<String> someValue = Opt.of("Hello, World!");
Opt<String> noneValue = Opt.none();
Opt<Integer> emptyValue = Opt.ofNullable(null); // Returns Opt.None<Integer>String result = someValue.orElse("Default Value"); // "Hello, World!"
String result2 = noneValue.orElse("Default Value"); // "Default Value"Opt<Integer> number = Opt.of(42);
Opt<String> transformed = number.map(n -> "Number: " + n);
transformed.ifPresent(System.out::println); // Output: "Number: 42"
Opt<Integer> filtered = number.filter(n -> n > 50); // Returns None since 42 is not > 50OptVisitor<Integer, String> visitor = new OptVisitor<>() {
@Override
public String visit(Opt.Some<Integer> some) {
return "Got a value: " + some.get();
}
@Override
public String visit(Opt.None<Integer> none) {
return "No value present";
}
};
Opt<Integer> value = Opt.of(10);
String message = value.accept(visitor);
System.out.println(message); // Output: "Got a value: 10"Opt<Integer> i = Opt.none();
switch (i) {
case Opt.Some<Integer> x -> System.out.println("Value: " + x.get());
case Opt.None<Integer> x -> System.out.println("None"); // Output: "None"
}This project is licensed under the MIT License – see the LICENSE file for details.
Feel free to fork and submit pull requests! Contributions, bug reports, and feature requests are always welcome. 😊
If you find this project useful, consider giving it a star to show your appreciation! ⭐
Why use a sealed class?
Why implement so many methods?
Explore the code and contribute to improving this functional Optional monad for Java!
| Back | FazBrowse Home | New Git URL |