com.helger.jcodemodel.AbstractJClass.wildcard()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(4.5k)|赞(0)|评价(0)|浏览(94)

本文整理了Java中com.helger.jcodemodel.AbstractJClass.wildcard()方法的一些代码示例,展示了AbstractJClass.wildcard()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AbstractJClass.wildcard()方法的具体详情如下:
包路径:com.helger.jcodemodel.AbstractJClass
类名称:AbstractJClass
方法名:wildcard

AbstractJClass.wildcard介绍

[英]Create "? extends T" from T.
[中]创建?从T扩展T。

代码示例

代码示例来源:origin: phax/jcodemodel

/**
 * Create "? extends T" from T.
 *
 * @return never <code>null</code>
 * @since 3.0.0
 */
@Nonnull
public final JTypeWildcard wildcardExtends ()
{
 return wildcard (EWildcardBoundMode.EXTENDS);
}

代码示例来源:origin: com.helger/jcodemodel

/**
 * Create "? extends T" from T.
 *
 * @return never <code>null</code>
 * @since 3.0.0
 */
@Nonnull
public final JTypeWildcard wildcardExtends ()
{
 return wildcard (EWildcardBoundMode.EXTENDS);
}

代码示例来源:origin: com.helger/jcodemodel

/**
 * Create "? super T" from T.
 *
 * @return never <code>null</code>
 */
@Nonnull
public final JTypeWildcard wildcardSuper ()
{
 return wildcard (EWildcardBoundMode.SUPER);
}

代码示例来源:origin: phax/jcodemodel

/**
 * Create "? super T" from T.
 *
 * @return never <code>null</code>
 */
@Nonnull
public final JTypeWildcard wildcardSuper ()
{
 return wildcard (EWildcardBoundMode.SUPER);
}

代码示例来源:origin: com.github.sviperll/adt4j-core

@Override
public AbstractJType visitWildcard(WildcardType t, Void p) {
  try {
    TypeMirror extendsBoundMirror = t.getExtendsBound();
    if (extendsBoundMirror != null) {
      AbstractJClass extendsBound = (AbstractJClass)toJType(extendsBoundMirror, environment);
      return extendsBound.wildcard(JTypeWildcard.EBoundMode.EXTENDS);
    }
    TypeMirror superBoundMirror = t.getSuperBound();
    if (superBoundMirror != null) {
      AbstractJClass superBound = (AbstractJClass)toJType(superBoundMirror, environment);
      return superBound.wildcard(JTypeWildcard.EBoundMode.SUPER);
    }
    return codeModel.wildcard();
  } catch (CodeGenerationException ex) {
    throw new RuntimeCodeGenerationException(ex);
  } catch (SourceException ex) {
    throw new RuntimeSourceException(ex);
  } catch (ErrorTypeFound ex) {
    throw new RuntimeErrorTypeFound(ex);
  }
}

代码示例来源:origin: phax/jcodemodel

@Override
public AbstractJType visitWildcard (final WildcardType t, final Void p)
{
 try
 {
  final TypeMirror extendsBoundMirror = t.getExtendsBound ();
  if (extendsBoundMirror != null)
  {
   final AbstractJClass extendsBound = (AbstractJClass) m_aModelsAdapter.toJType (extendsBoundMirror, m_aEnvironment);
   return extendsBound.wildcard (EWildcardBoundMode.EXTENDS);
  }
  final TypeMirror superBoundMirror = t.getSuperBound ();
  if (superBoundMirror != null)
  {
   final AbstractJClass superBound = (AbstractJClass) m_aModelsAdapter.toJType (superBoundMirror, m_aEnvironment);
   return superBound.wildcard (EWildcardBoundMode.SUPER);
  }
  return m_aCodeModel.wildcard ();
 }
 catch (final CodeModelBuildingException ex)
 {
  throw new RuntimeCodeModelBuildingException (ex);
 }
 catch (final ErrorTypeFound ex)
 {
  throw new RuntimeErrorTypeFound (ex);
 }
}

代码示例来源:origin: com.helger/jcodemodel

@Override
public AbstractJType visitWildcard (final WildcardType t, final Void p)
{
 try
 {
  final TypeMirror extendsBoundMirror = t.getExtendsBound ();
  if (extendsBoundMirror != null)
  {
   final AbstractJClass extendsBound = (AbstractJClass) m_aModelsAdapter.toJType (extendsBoundMirror, m_aEnvironment);
   return extendsBound.wildcard (EWildcardBoundMode.EXTENDS);
  }
  final TypeMirror superBoundMirror = t.getSuperBound ();
  if (superBoundMirror != null)
  {
   final AbstractJClass superBound = (AbstractJClass) m_aModelsAdapter.toJType (superBoundMirror, m_aEnvironment);
   return superBound.wildcard (EWildcardBoundMode.SUPER);
  }
  return m_aCodeModel.wildcard ();
 }
 catch (final CodeModelBuildingException ex)
 {
  throw new RuntimeCodeModelBuildingException (ex);
 }
 catch (final ErrorTypeFound ex)
 {
  throw new RuntimeErrorTypeFound (ex);
 }
}

代码示例来源:origin: com.github.sviperll/adt4j

public static AbstractJType substitute(AbstractJType type, JTypeVar typeVariable, AbstractJType variableValue) {
  if (type == typeVariable)
    return variableValue;
  else if (!(type instanceof AbstractJClass)) {
    return type;
  } else {
    if (type.isArray())
      return substitute(type.elementType(), typeVariable, variableValue).array();
    else if (type instanceof JTypeWildcard) {
      JTypeWildcard wildcard = (JTypeWildcard)type;
      AbstractJClass bound = (AbstractJClass)substitute(wildcard.bound(), typeVariable, variableValue);
      return bound.wildcard(wildcard.boundMode());
    } else {
      /*
       * When we get type with type-parameters we should substitute
       * type-parameters.
       */
      AbstractJClass genericType = (AbstractJClass)type;
      if (genericType.getTypeParameters().isEmpty()) {
        return genericType;
      } else {
        AbstractJClass result = genericType.erasure();
        for (AbstractJClass typeArgument: genericType.getTypeParameters()) {
          result = result.narrow(substitute(typeArgument, typeVariable, variableValue));
        }
        return result;
      }
    }
  }
}

相关文章