Класс Java HashMap.Entry не найден - PullRequest
2 голосов
/ 25 февраля 2012

Я имею дело с проблемой.Код выдает «java.lang.ClassNotFoundException: java.util.HashMap.Entry»

Class.forName("java.util.HashMap.Entry");

Кто-нибудь знает, как я могу создать класс для хранения HashMap.Entry?

Ответы [ 3 ]

4 голосов
/ 25 февраля 2012

HashMap.Entry не публично, хотя оно существует.Вы должны иметь возможность получить его (как java.util.HashMap$Entry), но, поскольку он не является общедоступным типом, вы, вероятно, не должны его использовать.

Map.Entry является открытым, но у него нет этого имени -это java.util.Map$Entry из-за того, что это вложенный класс.

Если вы жестко программируете это, почему бы просто не использовать литерал класса?

import java.util.*;

public class Test
{
    public static void main(String[] args)
    {
        Class<?> clazz = Map.Entry.class;
        System.out.println(clazz.getName()); // java.util.Map$Entry
    }
}
4 голосов
/ 25 февраля 2012

Попробуйте:

Class.forName("java.util.HashMap$Entry");

(обратите внимание на знак доллара.)

Это работает для меня.

3 голосов
/ 08 апреля 2015

HashMap. Кажется, Entry больше не является внутренним классом Java 8

...