2015-04-24 3 views
0

Во время реализации Java-проекта я обнаружил странную ошибку. Когда я пытаюсь использовать длинные значения, я получаю ошибку - «Невозможно преобразовать длинный в длинный». Фрагменты кода приведены ниже.Невозможно преобразовать long в long в Eclipse

ObjectsIterator it = castFromBoth.iterator(); 
while (it.hasNext()) 
{ 
    long peopleOid = (long)it.next();    
    g.getAttribute(peopleOid, peopleNameType, value);   
    System.out.println("Hello " + value.getString()); 
} 
+2

Возможно, вы создали свой собственный «длинный» класс? В любом случае я не могу воспроизвести эту ошибку. Не могли бы вы создать и опубликовать пример короткого кода, который позволит нам фактически воспроизвести вашу проблему? – Pshemo

+0

Также вы можете сказать нам, какую версию Java вы используете? – Pshemo

+0

Я изменил it.next() на it.next(). LongValue(), и теперь это нормально –

ответ

0

Попробуйте это:

Long peopleOid = it.next(); //it.next() return a long wrapped in a Long Object 

Вы в конечном итоге с Лонг-объектом, но с Autoboxing вы можете использовать его как примитив долго без каких-либо проблем.

+0

Autoboxing/unboxing должен добавить 'Long' cast автоматически' long peopleOid = (long) new Object(); 'компилирует в порядке. – Pshemo

+0

@Pshemo Да, бросок не нужен, я его удаляю. Скажите, если вы считаете, что это лучше для понимания. – Mekap

+0

@Pshemo просто прочитайте ваше редактирование, возможно, в его случае проблема с какой версией java он использует, если я правильно назову автоматический перевод Long post post Java 5 – Mekap

Смежные вопросы