Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6951817
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T14:16:09+00:00 2026-05-27T14:16:09+00:00

I have many case classes in the format of case class Cluster (id: Pk[Long],

  • 0

I have many case classes in the format of

case class Cluster (id: Pk[Long],
        foo: Long,
        bar: String,
        env: String,
        name: String,
        deleted: Boolean = false) {
    def delete() = Cluster(id, foo, bar, env, name, true)
    def updateName(name: String) = Cluster(id, foo, bar, env, name, deleted)
    def updateFoo(foo: Long) = Cluster(id, foo, bar, env, name, deleted)
}

I and trying to have all of my classes immutable, i.e. update methods are creating a new instance.
Some of the classes have many more members and having the update methods cloning the self object with a different value is tedies error prone.

Any ideas of how to make it more efficient?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T14:16:10+00:00Added an answer on May 27, 2026 at 2:16 pm

    You don’t need your methods. You just need to:

    val c1 = Cluster(...)
    val c2 = c1.copy(env = "new env") // Just list those fields you want to update.
    

    The copy() method is available on case classes “for free”.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the following domain classes: Holiday : class Holiday { String justification User
I'm using MVC.net and I have 2 classes (case and accident) with a many
I have many classes inheriting the Page class. They share the same update_ended method
I have two distinct scenarios. One, where there is a many to many case,
I have not used many lambda expressions before and I ran into a case
I have a case where i have three entities with one-to-many and one-to-many relationships:
I have many small files containing code fragments, pseudo-code algorithms, classes, templates, SQL-samples, etc.,
I have a Good Practice Question: Lets assume a case where one have many
I face a situation where we have many very long methods, 1000 lines or
I have a set of classes that represent the storage of a font format

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.