本文整理汇总了Java中com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil.getCollectionItemType方法的典型用法代码示例。如果您正苦于以下问题:Java JavaGenericsUtil.getCollectionItemType方法的具体用法?Java JavaGenericsUtil.getCollectionItemType怎么用?Java JavaGenericsUtil.getCollectionItemType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil
的用法示例。
在下文中一共展示了JavaGenericsUtil.getCollectionItemType方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: canCoerce
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private static String canCoerce(PsiClass aClass, PsiType type) {
PsiType collectionItemType = JavaGenericsUtil.getCollectionItemType(type, aClass.getResolveScope());
if (collectionItemType == null && InheritanceUtil.isInheritor(type, JavaFxCommonClassNames.JAVAFX_BEANS_PROPERTY)) {
collectionItemType = getPropertyType(type, aClass.getProject());
}
if (collectionItemType != null && PsiPrimitiveType.getUnboxedType(collectionItemType) == null) {
final PsiClass baseClass = PsiUtil.resolveClassInType(collectionItemType);
if (baseClass != null) {
final String qualifiedName = baseClass.getQualifiedName();
if (qualifiedName != null && !Comparing.strEqual(qualifiedName, CommonClassNames.JAVA_LANG_STRING)) {
if (!InheritanceUtil.isInheritor(aClass, qualifiedName)) {
return unableToCoerceMessage(aClass, qualifiedName);
}
}
}
}
return null;
}
示例2: visitForeachStatement
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitForeachStatement(PsiForeachStatement statement)
{
super.visitForeachStatement(statement);
if(IGNORE_UNCHECKED_ASSIGNMENT)
{
return;
}
final PsiParameter parameter = statement.getIterationParameter();
final PsiType parameterType = parameter.getType();
final PsiExpression iteratedValue = statement.getIteratedValue();
if(iteratedValue == null)
{
return;
}
final PsiType itemType = JavaGenericsUtil.getCollectionItemType(iteratedValue);
LocalQuickFix[] fixes = myOnTheFly ? getChangeVariableTypeFixes(parameter, itemType, myGenerifyFixes) : LocalQuickFix.EMPTY_ARRAY;
checkRawToGenericsAssignment(parameter, iteratedValue, parameterType, itemType, true, fixes);
}
示例3: processForeach
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private PsiType processForeach( PsiElement parentDeclarationScope )
{
PsiType result = null;
if( parentDeclarationScope instanceof PsiForeachStatement )
{
final PsiForeachStatement foreachStatement = (PsiForeachStatement)parentDeclarationScope;
final PsiExpression iteratedValue = foreachStatement.getIteratedValue();
if( iteratedValue != null )
{
result = JavaGenericsUtil.getCollectionItemType( iteratedValue );
}
}
return result;
}
示例4: visitForeachStatement
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitForeachStatement(PsiForeachStatement statement) {
super.visitForeachStatement(statement);
if (IGNORE_UNCHECKED_ASSIGNMENT) return;
final PsiParameter parameter = statement.getIterationParameter();
final PsiType parameterType = parameter.getType();
final PsiExpression iteratedValue = statement.getIteratedValue();
if (iteratedValue == null) return;
final PsiType itemType = JavaGenericsUtil.getCollectionItemType(iteratedValue);
checkRawToGenericsAssignment(parameter, iteratedValue, parameterType, itemType, true, myOnTheFly ? getChangeVariableTypeFixes(parameter, itemType) : LocalQuickFix.EMPTY_ARRAY);
}
示例5: invoke
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
if (!FileModificationService.getInstance().preparePsiElementsForWrite(element)) return;
final XmlAttribute attr = (XmlAttribute)element.getParent();
final String name = attr.getName();
final XmlAttributeDescriptor descriptor = attr.getDescriptor();
LOG.assertTrue(descriptor != null);
String value = attr.getValue();
final PsiElement declaration = descriptor.getDeclaration();
if (declaration instanceof PsiField) {
final PsiType fieldType = ((PsiField)declaration).getType();
final PsiType itemType = JavaGenericsUtil.getCollectionItemType(fieldType, declaration.getResolveScope());
if (itemType != null) {
final String typeNode = itemType.getPresentableText();
JavaFxPsiUtil.insertImportWhenNeeded((XmlFile)attr.getContainingFile(), typeNode, itemType.getCanonicalText());
final String[] vals = value.split(",");
value = StringUtil.join(vals, new Function<String, String>() {
@Override
public String fun(String s) {
return "<" + typeNode + " " + FxmlConstants.FX_VALUE + "=\"" + s.trim() + "\"/>";
}
}, "\n");
}
}
final XmlTag childTag = XmlElementFactory.getInstance(project).createTagFromText("<" + name + ">" + value + "</" + name + ">");
attr.getParent().add(childTag);
attr.delete();
}
示例6: visitForeachStatement
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Override
public void visitForeachStatement(PsiForeachStatement statement) {
super.visitForeachStatement(statement);
if (IGNORE_UNCHECKED_ASSIGNMENT) return;
final PsiParameter parameter = statement.getIterationParameter();
final PsiType parameterType = parameter.getType();
final PsiExpression iteratedValue = statement.getIteratedValue();
if (iteratedValue == null) return;
final PsiType itemType = JavaGenericsUtil.getCollectionItemType(iteratedValue);
checkRawToGenericsAssignment(parameter, parameterType, itemType, true, myOnTheFly ? getChangeVariableTypeFixes(parameter, itemType) : LocalQuickFix.EMPTY_ARRAY);
}
示例7: processParameterDeclaration
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private PsiType processParameterDeclaration(PsiElement parentDeclarationScope) {
PsiType result = null;
if (parentDeclarationScope instanceof PsiForeachStatement) {
final PsiForeachStatement foreachStatement = (PsiForeachStatement) parentDeclarationScope;
final PsiExpression iteratedValue = foreachStatement.getIteratedValue();
if (iteratedValue != null) {
result = JavaGenericsUtil.getCollectionItemType(iteratedValue);
}
}
return result;
}
示例8: calcCanBeNull
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
static Boolean calcCanBeNull(DfaVariableValue value)
{
PsiModifierListOwner var = value.getPsiVariable();
Nullness nullability = DfaPsiUtil.getElementNullability(value.getVariableType(), var);
if(nullability != Nullness.UNKNOWN)
{
return toBoolean(nullability);
}
Nullness defaultNullability = value.getFactory().suggestNullabilityForNonAnnotatedMember(var);
if(var instanceof PsiParameter && var.getParent() instanceof PsiForeachStatement)
{
PsiExpression iteratedValue = ((PsiForeachStatement) var.getParent()).getIteratedValue();
if(iteratedValue != null)
{
PsiType itemType = JavaGenericsUtil.getCollectionItemType(iteratedValue);
if(itemType != null)
{
return toBoolean(DfaPsiUtil.getElementNullability(itemType, var));
}
}
}
if(var instanceof PsiField && value.getFactory().isHonorFieldInitializers())
{
return toBoolean(getNullabilityFromFieldInitializers((PsiField) var, defaultNullability));
}
return toBoolean(defaultNullability);
}
示例9: getCollectionItemType
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
@Nullable
private static PsiType getCollectionItemType(@NotNull PsiClass psiClass, @NotNull PsiType type) {
return JavaGenericsUtil.getCollectionItemType(type, psiClass.getResolveScope());
}
示例10: calcInherentNullability
import com.intellij.codeInsight.daemon.impl.analysis.JavaGenericsUtil; //导入方法依赖的package包/类
private Nullness calcInherentNullability() {
PsiModifierListOwner var = getPsiVariable();
Nullness nullability = DfaPsiUtil.getElementNullability(getVariableType(), var);
if (nullability != Nullness.UNKNOWN) {
return nullability;
}
Nullness defaultNullability = myFactory.isUnknownMembersAreNullable() && MEMBER_OR_METHOD_PARAMETER.accepts(var) ? Nullness.NULLABLE : Nullness.UNKNOWN;
if (var instanceof PsiParameter && var.getParent() instanceof PsiForeachStatement) {
PsiExpression iteratedValue = ((PsiForeachStatement)var.getParent()).getIteratedValue();
if (iteratedValue != null) {
PsiType itemType = JavaGenericsUtil.getCollectionItemType(iteratedValue);
if (itemType != null) {
return DfaPsiUtil.getElementNullability(itemType, var);
}
}
}
if (var instanceof PsiField && DfaPsiUtil.isFinalField((PsiVariable)var) && myFactory.isHonorFieldInitializers()) {
List<PsiExpression> initializers = DfaPsiUtil.findAllConstructorInitializers((PsiField)var);
if (initializers.isEmpty()) {
return defaultNullability;
}
boolean hasUnknowns = false;
for (PsiExpression expression : initializers) {
Nullness nullness = getFieldInitializerNullness(expression);
if (nullness == Nullness.NULLABLE) {
return Nullness.NULLABLE;
}
if (nullness == Nullness.UNKNOWN) {
hasUnknowns = true;
}
}
if (hasUnknowns) {
if (DfaPsiUtil.isInitializedNotNull((PsiField)var)) {
return Nullness.NOT_NULL;
}
return defaultNullability;
}
return Nullness.NOT_NULL;
}
return defaultNullability;
}