powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Переопределение поля другим типом.
4 сообщений из 4, страница 1 из 1
Переопределение поля другим типом.
    #37887541
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы переопределений полей нет, но мне нужно чтоб тип одного поля стыл из ArrayList в HashSet.
Не совсем уверен как правильно это реализовать.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class A {

    ArrayList<Item> items;
    String params;

    public A(String params) {
        super();

        this.items = new ArrayList<Item>();
        this.params = params;
    }

    public void addItem(Item item) {
        items.add(item);
    }

    public ArrayList<Item> getItems() {
        return items;
    }
}



далее рисую следующий класс

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class B extends A {
 
    HashSet<Item> items;

    public B(String params) {
        super(params);

        this.items = new HashSet<Item>();
    }
}



Вроде не ругается. Будет ли так работать как надо? Хочу, чтою только уникальные Item в классе B были. Для Item методы эквивалентности и хэша переопределил. Или в классе B нужно переопределить методы addItem и getItems? Как бы непонятно что вернет getItems в данном случае.
...
Рейтинг: 0 / 0
Переопределение поля другим типом.
    #37887574
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так покрасивее будет. Только непонятно, зачем это нужно.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
public abstract class ItemsHolder {

    Collection<Item> items;
    String params;
    
    protected ItemsHolder(String params) {
      this.params = params;
   }

    public void addItem(Item item) {
        items.add(item);
    }

    public Collectiont<Item> getItems() {
        return items;
    }
}

class ListHolder extends ItemsHolder {
    public A(String params) {
       super(params);
        this.items = new ArrayList<Item>();
    }

    public List<Item> getItems() {
        return items;
    }

}

class SetHolder extends ItemsHolder {
    public A(String params) {
        super(params);
        this.items = new HashSet<Item>();
    }

    public Set<Item> getItems() {
        return items;
    }

}
...
Рейтинг: 0 / 0
Переопределение поля другим типом.
    #37887579
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я тоже подумал было через абстрактный класс или через интерфейс. Но тут придется поковырять код, посмотреть на что эта переделка повлияет ещё. Это нужно, чтоб использовать стандартное огрнаичние на уникальность реализации интерфейса сетов, а не городить свой цикл проверки на уникальность. Но я пока нагородил свой метод проверки прежде чем писать в арэйлист. Ладно, спасибо пока на этом. Потом может переделаю, если руки дойдут.
...
Рейтинг: 0 / 0
Переопределение поля другим типом.
    #37887590
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabНо я пока нагородил свой метод проверки прежде чем писать в арэйлистпокажи-ка )
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Переопределение поля другим типом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]