@Override
  public T getType() {
    T myType = dereference(myTypeRef);
    if (myType != null && myType.isValid()) return myType;

    myType = calcType();
    myTypeRef = myType == null ? null : new SoftReference<>(myType);
    return myType;
  }
@Override
  public T getType()