有人知道在Eclipse的内容帮助中将this关键字(Java)标记为static final的原因吗? final对我来说很有意义,但是为什么static吗?

java - Java  “this”-在Eclipse内容帮助中标记为静态的关键字-LMLPHP

屏幕截图是使用Eclipse 2020-03制作的,但是多年来我一直在观察这种行为。

最佳答案

这样做的代码在org.eclipse.jdt.internal.ui.text.java.ParameterGuesser

// add 'this'
if (currentType != null && !(fEnclosingElement instanceof IMethod && Flags.isStatic(((IMethod) fEnclosingElement).getFlags()))) {
  String fullyQualifiedName= currentType.getFullyQualifiedName('.');
  if (fullyQualifiedName.equals(expectedType)) {
    ImageDescriptor desc= new JavaElementImageDescriptor(JavaPluginImages.DESC_FIELD_PUBLIC, JavaElementImageDescriptor.FINAL | JavaElementImageDescriptor.STATIC, JavaElementImageProvider.SMALL_SIZE);
    res.add(new Variable(fullyQualifiedName, "this", Variable.LITERALS, false, res.size(), new char[] {'.'}, desc));  //$NON-NLS-1$
  }
}

该代码中的关键是
JavaElementImageDescriptor.FINAL | JavaElementImageDescriptor.STATIC

作为JavaElementImageDescriptor的标志,该标志对静态和最终重叠图片的显示进行硬编码。因此,这些总是显示为this

至于为什么选择它,代码没有给出任何理由。

08-27 23:34
查看更多