我正在嘗試爲靜態內部類Map.Entry編寫Eclipse外部註釋文件。我該怎麼做呢?什麼是靜態內部類的Eclipse外部註釋格式?
我在java/util
子文件夾下創建了一個名爲Map$Entry.eea
的文件,其中包含我的所有外部註釋文件所在的文件夾。這是該文件的內容。
class java/util/Map$Entry
comparingByKey
<K::Ljava/lang/Comparable<-TK;>;V:Ljava/lang/Object;>()Ljava/util/Comparator<Ljava/util/Map$Entry<TK;TV;>;>;
<K::Ljava/lang/Comparable<-TK;>;V:Ljava/lang/Object;>()L1java/util/Comparator<L1java/util/Map$Entry<T1K;TV;>;>;
comparingByKey
<K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Comparator<-TK;>;)Ljava/util/Comparator<Ljava/util/Map$Entry<TK;TV;>;>;
<K:Ljava/lang/Object;V:Ljava/lang/Object;>(L1java/util/Comparator<-TK;>;)L1java/util/Comparator<L1java/util/Map$Entry<TK;TV;>;>;
comparingByValue
<K:Ljava/lang/Object;V::Ljava/lang/Comparable<-TV;>;>()Ljava/util/Comparator<Ljava/util/Map$Entry<TK;TV;>;>;
<K:Ljava/lang/Object;V::Ljava/lang/Comparable<-TV;>;>()L1java/util/Comparator<L1java/util/Map$Entry<TK;T1V;>;>;
comparingByValue
<K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Comparator<-TV;>;)Ljava/util/Comparator<Ljava/util/Map$Entry<TK;TV;>;>;
<K:Ljava/lang/Object;V:Ljava/lang/Object;>(L1java/util/Comparator<-TV;>;)L1java/util/Comparator<L1java/util/Map$Entry<TK;TV;>;>;
equals
(Ljava/lang/Object;)Z
(L0java/lang/Object;)Z
getKey
()TK;
()TK;
getValue
()TV;
()TV;
setValue
(TV;)TV;
(TV;)TV;
的Eclipse仍標誌下面的代碼上entry.getValue()
警告:
Map.Entry<@Nullable String, @NonNull Object> entry;
@NonNull Object value = entry.getValue();
的警告是:
Unsafe interpretation of method return type as '@NonNull' based on the receiver type
'Map.<@NonNull Entry<@Nullable String, @NonNull Object>>'. Type Map.Entry<K, V> doesn't seem
to be designed with null type annotations in mind.
如果我有一個'Map.Entry的<@Nullable字符串,@NonNull對象>取值範;'和'Map.Entry的<@Nullable字符串,@Nullable對象> ENTRY2;'。在一種情況下,我需要'()T1V;'在另一種情況下,我需要'()T0V;'。我如何處理這兩種情況? – Nathan
對於某些地圖,允許使用空值(即@Nullable V)。對於其他地圖,不允許使用空值(即@NonNull V)。在後一種情況下,Map.get()可以返回null,但是Map.Entry.getValue()不會返回null。這太糟糕了,我們無法指定'()TV;並且Eclipse會查看'V'的定義來確定它是否爲@NonNull或@Nullable。 – Nathan
如果有這個類的外部註釋文件,但是沒有針對此特定方法的V的外部註釋,那麼Eclipse會查看V的定義以確定它是否爲「@ NonNull」或「@ Nullable」。 – howlger