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 7045331
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T02:31:03+00:00 2026-05-28T02:31:03+00:00

I sometimes write classes which can be converted to- and from- something else, and

  • 0

I sometimes write classes which can be converted to- and from- something else, and I’m used to writing it as a non-static convert-to method and a static convert-from method, for example:

class A {
    B toB() {...}
    static A fromB(B b) {...}
}

or

class B {
    void save(File f) {...}
    static B load(File f) {...}
}

I used to think it’s a good and simple approach, but lately the static-ness of the conversion-from method has been annoying me, for instance if I want to define an interface for types that can be converted to- and from- B:

interface ConvertableToAndFromB {
    B toB();
    // ?
}

So, is there an elegant way of doing that without having the conversion-from as static, other than migrating to Smalltalk?

EDIT

To clarify, I realize I can add a non-static method in the interface, e.g.:

interface ConvertableToAndFromB {
    B toB();
    void fromB(B b);
}

or, if I want to allow immutable types (thanks Stripling):

interface ConvertableToAndFromB<T implements ConvertibleToAndFromB<T>> {
    B toB();
    T fromB(B b);
}

But that will require me to create a new A before I can even invoke this, as in:

A a = new A();
a.fromB(b);

or (for immutable):

A a = new A();
a = a.fromB(b);

which is what I’m trying to avoid (but will do with no other solution). I just hope there’s a nicer way.

  • 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-28T02:31:04+00:00Added an answer on May 28, 2026 at 2:31 am

    Often, a fromB method would be implemented as a copy constructor. E.g.

    public class A
    {
      public A(B b)
      {
        this.someValue = b.someOtherVariable;
      }
    }
    

    Unfortunately this does not help you create an interface to abstract said functionality. Normally, a separate factory could be used, and this factory implement an interface, but this would still not allow you to get around being able to implement the method in your object in a non-static way while avoiding unnecessary instantiation.

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

Sidebar

Related Questions

Sometimes, I want to use an ObjectOutputStream to write something to a file or
Sometimes while writing Java in Eclipse, I write code that generates warnings. A common
Sometimes I have classes which need to get some information for construction. I am
We sometimes write dataport scripts that rename tables or columns and have other complex
I sometimes write SELECTs on the form: SELECT a.col1 + b.col2 * c.col4 as
Sometimes I write very short assembly functions like function SeniorBit(Value: LongWord): Integer; asm OR
Sometimes whenever I write a program in Linux and it crashes due to a
Sometimes I have to write code that alternates between doing things and checking for
I want to write to/delete a file but sometimes I get a crash if
What are your thoughts about them? Sometimes I have to write unmanaged code at

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.