immutables

Annotation processor to create immutable objects and builders. Feels like Guava's immutable collections but for regular value objects. JSON, Jackson, Gson, JAX-RS integrations included

Github星跟蹤圖

Read full documentation at http://immutables.org

Build Status

// Define abstract value type using interface, abstract class or annotation
@Value.Immutable
public interface ValueObject extend WithValueObject {
  // extend not-yet-generated WithValueObject 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
}

// Use generated immutable implementation and builder
ValueObject v =
    new ValueObject.Builder()
        .name("Nameless")
        .description("present")
        .addCounts(1)
        .addCounts(2)
        .build();

v = v.withName("Doe");

License

   Copyright 2013-2018 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.

Changelog

See changelog for release history.

主要指標

概覽
名稱與所有者immutables/immutables
主編程語言Java
編程語言Java (語言數: 1)
平台
許可證Apache License 2.0
所有者活动
創建於2013-07-07 13:48:23
推送於2025-04-09 02:10:37
最后一次提交2025-04-08 22:10:30
發布數132
最新版本名稱2.10.1 (發布於 )
第一版名稱root-0.11 (發布於 2014-01-03 17:54:50)
用户参与
星數3.5k
關注者數87
派生數281
提交數2.7k
已啟用問題?
問題數1193
打開的問題數437
拉請求數310
打開的拉請求數6
關閉的拉請求數31
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?