I’ve been using C# for a long time and now I need to do something in Java.
Is there something like C#’s struct automatic constructor in java ?
What I mean is
In C#
struct MyStruct
{
public int i;
}
class Program
{
void SomeMethod()
{
MyStruct mStruct; // Automatic constructor was invoked; This line is same as MyStruct mStruct = new MyStruct();
mStruct.i = 5; // mStruct is not null and can i can be assigned
}
}
Is it possible to force java to use default constructor on declaration ?
No – Java doesn’t support custom value types at all, and constructors are always explicitly called.
However, your understanding of C# is incorrect anyway. From your original post:
That’s not true. You can write to
mStruct.iwithout any explicit initialization here, but you can’t read from it unless the compiler knows everything has been assigned a value: