Programmer.杨 2020-08-29 21:52 采纳率: 0%
浏览 152
已采纳

图1中idea中红框内的图标是什么意思??????我在图2模仿了collection和abstractcollection和set的关系为什么没有出现那个图标???

图片说明


图片说明

  • 写回答

3条回答 默认 最新

  • jingluan666 2020-08-30 10:01
    关注

    如下代码是摘取InputStream相关片段:

    ObjectInput_.java

    public interface ObjectInput_ {
        public int read();
    }
    

    InputStream_.java

    public abstract class InputStream_  {
        public int read(){
            return 0;
        }
    }
    

    ObjectInputStream_.java

    public class ObjectInputStream_ extends InputStream_ implements ObjectInput_ {
        public int read()  {
            return 0;
        }
    }
    

    图片说明

    如果把ObjectInputStream_类删了,就不显示那个图标了,是因为ObjectInputStream_既继承了InputStream_又实现了ObjectInput_

    而你给的AbstractCollection例子能显示是因为其子类AbstractSet同时实现了Set

    public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
    

    github上有idea的源码,可以下下来看看逻辑,比方上面的判断是在文件:
    java\java-impl\src\com\intellij\codeInsight\daemon\impl\JavaLineMarkerProvider.java

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?