[英]How to add elements from a generic type to a list <long> in JAVA?
我是刚开始在这里发布问题的人,但是从昨天开始一直在寻找解决方案,但找不到。 非常感谢您的帮助。
我有两行代码,试图将通用元素放入列表中并在将Long元素发送到List时出现类型不匹配的情况。
List<Long> returnedPages = m_algo.getElement(Arrays.asList(pageIds));
List<Long> pagesNotInRam = new ArrayList<>();
List<Long> pageIdsToHandle = m_algo.putElement(pagesNotInRam, pagesNotInRam);
m_algo被定义
private IAlgoCache<Long, Long> m_algo;
和IAlgoCache使用泛型类型
public interface IAlgoCache <K, V> {
public V getElement(K key);
public V putElement(K key, V value);}
我可以做这个工作吗? 我应该以某种循环工作吗?
您的代码有几个问题。 例如
public V getElement(K key); // takes an object as an argument (Long in your case)
m_algo.getElement(Arrays.asList(pageIds)); // you pass a list of objects (I suppose longs)
并且即使您解决了该问题并在以后传递了正确的密钥,您仍试图将Long对象分配给List。 这就是它抱怨的原因-无法对集合进行分配和对象,因为它们基本上是不同的类型。
List<Long> returnedPages = m_algo.getElement( properKey ); // Problem
尝试:
List<Long> returnedPages=new ArrayList();
returnedPages.add(m_algo.getElement( properKey));
putElement的问题是相同的。 您只需要区分对象和对象的数组或集合即可。 即使它们具有相同的类型,也不能互换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.