powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что делает этот код?
3 сообщений из 3, страница 1 из 1
Что делает этот код?
    #38450530
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что делает этот код?

Коллеги, сам из .Net, но разбираюсь с Java кодом, подскажите, что делает этот код?

Код: 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.
@XStreamAlias("acceptor")
public class AcceptorConfig {

@XStreamImplicit(itemFieldName = "acceptorClass")
    private List<Class<? : Acceptor>> acceptorClassList = null; // TODO make into a list

public List<Class<? : Acceptor>> getAcceptorClassList() {
        return acceptorClassList;
    }

public void setAcceptorClassList(List<Class<? : Acceptor>> acceptorClassList) {
        this.acceptorClassList = acceptorClassList;
    }

// ************************************************************************
    // Builder methods
    // ************************************************************************

    public Acceptor buildAcceptor(HeuristicConfigPolicy configPolicy) {
        EnvironmentMode environmentMode = configPolicy.getEnvironmentMode();
        List<Acceptor> acceptorList = new List<Acceptor>();
        if (acceptorClassList != null) {
            for (Class<? : Acceptor> acceptorClass : acceptorClassList) {
                Acceptor acceptor = ConfigUtils.newInstance(this, "acceptorClass", acceptorClass);
                acceptorList.add(acceptor);
            }
        }

Насколько могу понять, этот код читает файл конфигурации.

1. Подскажите, что значит Class<? : Acceptor> ? Я понимаю это тип словаря, но что обозначает Class<? Что значит Class и вопросительный знак?
2. Что значит @XStreamAlias("acceptor") в декларации класса?
...
Рейтинг: 0 / 0
Что делает этот код?
    #38450581
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
? : Acceptor это не pure Java синтаксис.
? extends Acceptor это Java generics wildcard
Class<? : Acceptor> acceptorClass обозначет что в переменной acceptorClass мы планируем хранить класс любого наследника Acceptor или сам Acceptor.class.
http://docs.oracle.com/javase/tutorial/java/generics/upperBounded.html
В .Net ведь тоже есть генерики.

@XStreamAlias("acceptor") это аннотация, аналог атрибутов в .NET. Это метаданные для типа AcceptorConfig , которые говорят фреймверку XStream, что для класса AcceptorConfig нужно использовать алиас acceptor. Имя XML тэга наверное.
...
Рейтинг: 0 / 0
Что делает этот код?
    #38450585
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, спасибо за объяснение, все сразу стало на свои места, искренне благодарю.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Что делает этот код?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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