Default value for date/time (original) (raw)
Stephen Colebourne scolebourne at joda.org
Wed May 9 00:37:35 UTC 2018
- Previous message (by thread): Default value for date/time
- Next message (by thread): Default value for date/time
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 9 May 2018 at 01:13, John Rose <john.r.rose at oracle.com> wrote:
I worry that while the key principle has got the project a long way, it is too hard line when it comes to some potential value types - Currency or Money being other examples where a default is silly, but they are otherwise fully value-like. Any value type measuring a scaled amount is going to have a zero right? That's the default, probably. It's affine amounts like times that don't have a good default.
Whats the default Currency? USD is a not an acceptable answer. Money is the same as it can't exist without a currency.
What about a Distance object? Is it measured in Miles or Kilometers by default?
class ObserveTheDefault { LocalDateValue x; LocalDateValue[] a = new LocalDateValue[1]; void test() { System.out.println(x); assert(LocalDateValue.default.equals(x)); System.out.println(a[0]); assert(LocalDateValue.default.equals(a[0])); } public static void main(String… av) { new ObserveTheDefault().test(); } }
My suggestion was that code does not compile as LocalDateValue x
wasn't assigned in the constructor (not "works like an int", but then
its not like an int). Anything else risks allowing a "null-like"
LocalDate to escape and head off causing havoc to real code - just
like null does...
Anyway, I'm not expecting firm/final answers right now - value types has too far to go. Consider my points to be concerns that might be worth considering.
thanks Stephen
- Previous message (by thread): Default value for date/time
- Next message (by thread): Default value for date/time
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]