Я создаю LinkedHashMap используя следующие код-InstanceOf LinkedHashMap
private final Map<Long, DD> cachedPlansById=new LinkedHashMap<Long, DD>();
cachedPlansById instanceof LinkedHashMap
Но я получаю «истина» на InstanceOf HashMap и «ложь» на InstanceOf LinkedHashMap. Можете ли вы предложить, как убедиться, что это верно для instanceof LinkedHashMap?
Я не могу объявить его как LinkedHashMap, что нарушает код.
Это правда, что, когда я пишу новый тестовый класс, приведенный выше код работает. Не уверен, в чем проблема в моем первоначальном классе, так как нет никаких импортных данных в HashMap, а cachedPlansById получает экземпляр только один раз, поэтому не уверен, как он затеняется. Вот тест class-
import java.util.*;
public class MapTest {
public static void main(String[] args) {
Map<Long, String> m = new LinkedHashMap<Long, String>();
if (m instanceof LinkedHashMap) {
System.out.println("true");
LinkedHashMap<Long, String> l = (LinkedHashMap) m;
if (l instanceof LinkedHashMap)
System.out.println("true");
}
}
}
код или не произошло –
Она должна возвращать верно как для –
Он возвращает истинное. Вы уверены, что попробовали? – zerocool