繁体   English   中英

如何将元素从通用类型添加到列表 <long> 在JAVA中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM