code: @Override  // override with covariant return type
      public JapaneseDate date(TemporalAccessor temporal) {
          if (temporal instanceof JapaneseDate) {
              return (JapaneseDate) temporal;
          }
          return new JapaneseDate(LocalDate.from(temporal));
      }
docs: -----------------------------------------------------------------------