Как инициализировать Объект класса с примитивными типами - PullRequest
0 голосов
/ 28 мая 2019

Я видел различные потоки, и большинство из них говорит о значениях по умолчанию, например, примитивы инициализируются 0 , а Wrappers инициализируются null . Мой вопрос конкретный и с примером, а не просто концепцией.

Мой класс:

public class Subject {
    int subCode;
    int marks;
    long CGPA;

    public Subject(int subCode, int marks, long CGPA) {
        this.subCode = subCode;
        this.marks = marks;
        this.CGPA = CGPA;
    }

}

Теперь моя карта в основном классе:

Map<Integer,List<Subject>> map1 = new HashMap<>();
        map1.put(Integer.valueOf(1),new Subject(001,70,29l));

Я получаю ошибку в 29l, я пробовал различные формы, такие как Long.Valueof(29), но они не работают.

Может кто-нибудь сказать мне концепцию, когда в поле класса есть примитивные типы, тогда как сделать экземпляр класса с помощью конструктора.

Примечание: Я полностью осознаю, что мне следует использовать здесь класс Wrapper, но теперь я хочу попробовать примитив, это только для моего обучения.

Спасибо.

1 Ответ

5 голосов
/ 28 мая 2019

Здесь:

Map<Integer,List<Subject>> map1 = new HashMap<>();

Вы заявляете, что значение карты: списки .

Затем вы пытаетесь добавить один экземпляр предметного класса!

    map1.put(Integer.valueOf(1),new Subject(001,70,29l));

Не могу работать!

    map1.put(1, Collections.singletonList(new Subject(001,70,29l)));
    map1.put(1, Arrays.asList(new Subject(001,70,29l)));
    map1.put(1, new ArrayList<>(Arrays.asList(new Subject(001,70,29l))));

все должно работать.(примечание: я не запускал вышеупомянутое через компилятор, так что игнорируйте глупые опечатки и тому подобное. И: первые два примера дадут вам строки, которые не позволят вам добавлять / удалять элементы из этих списков)

А ваша формулировка подразумевает неверное представление о вашей стороне: список не является «оберткой».Это контейнер .Коробка, в которую вы кладете вещи.И когда вы говорите: моя карта должна содержать ящики для яиц, тогда эта карта требует яиц для яиц, а не отдельных яиц!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...