Как создать класс Java, подобный шаблонному классу C++?

Вы могли бы хотеть экспериментировать с not-strictly-database решением как Репозиторий содержания Java реализация (например, Американский заяц Apache ) и использовать поисковую систему, созданную к тому же как Apache Lucene.

Это решение с соответствующими механизмами кэширования возможно привело бы к лучшей производительности, чем решение собственной разработки.

Однако я действительно не думаю, что в маленьком или приложении среднего размера Вы потребовали бы более сложной реализации, чем нормализованная база данных, упомянутая в более ранних сообщениях.

РЕДАКТИРОВАНИЕ: с Вашим разъяснением это кажется более востребованным для использования подобного JCR решения с поисковой системой. Это значительно упростило бы Ваши программы в конечном счете.

21
задан 0x6B6F77616C74 14 June 2013 в 23:28
поделиться

3 ответа

class SomeClass<T> {
  private T data;

  public SomeClass() {
  }

  public void set(T data_) {
    data = data_;
  }
}

Вы, вероятно, также захотите сделать сам класс общедоступным, но это в значительной степени буквальный перевод на Java.

Есть и другие различия между шаблонами C ++ и универсальными шаблонами Java, но ни одно из них не является проблемы для вашего примера.

39
ответ дан 29 November 2019 в 20:06
поделиться

Для этого в Java используются «дженерики»:

public class SomeClass<T> {
  private T data;

  public SomeClass() {
  }

  public void set(T data) {
    this.data = data;
  }
};

В Википедии есть хорошее описание дженериков в Java .

6
ответ дан 29 November 2019 в 20:06
поделиться
/**
 * This class is designed to act like C#'s properties.
 */
public class Property<T>
{
  private T value;

  /**
   * By default, stores the value passed in.
   * This action can be overridden.
   * @param _value
   */
  public void set (T _value)
  {
    value = _value;
  }

  /**
   * By default, returns the stored value.
   * This action can be overridden.
   * @return
   */
  public T get()
  {
    return value;
  }
}
3
ответ дан 29 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: