Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
1

Inject generic

11.07.2017, 13:06. Показов 580. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть несколько классов такого вида.

Java
1
2
class ClassAImpl implements ClassA
class ClassBImpl implements ClassB
в каждый класс инжектится зависимость:

Java
1
2
@Autowired
InjectableClass injectable;
Далее в методах происходит что-то такое

Java
1
2
3
4
5
class ClassAImpl implements ClassA {
  public aMethod(){ 
    injectable.call(function, ClassA.class);
  }
}
Задача: убрать из сигнатуры функции call Class, т.е. injectable.call(function, ClassA.class) -> injectable.call(function);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.07.2017, 13:06
Ответы с готовыми решениями:

Cannot resolve symbol 'inject' in intellij
Всем привет. У меня не получается воспользоваться аннотацией @Inject. Вот мои действия: 1)Создать spring проект 2)Добавить новый класс ...

Использование @Inject не помогает контейнеру сервлетов Tomcat управлять beans
Использование @Inject должна указывать компилятору, что управление beans передается контейнеру сервлетов. Например указав данную...

Не удается произвести Inject сервиса (Rest, Hibernate, Embedded Derby)
При попытке обратиться к методу по пути /all получаю ошибку. В Glassfish создал Conection Pool и JDBC Resource. В приложении настроил...

5
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
11.07.2017, 17:37 2
Способы есть разные, зависит от задачи. Реализация InjectableClass одна? Какая сигнатура у function?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
11.07.2017, 17:51  [ТС] 3
Реализация инжектабл одна, function это лямбда, которая работает с объектом переданного класса
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
13.07.2017, 06:58 4
так если function имеет в качестве параметра этот тип, то сделай метод шаблонным:
Java
1
2
3
4
5
6
7
class InjectableClassImpl implements InjectableClass {
 
    @Override
    public <T> void call(Function<T,...> function) {
        
    }
}
Добавлено через 27 секунд
дашь больше конкретики с примером - скажу больше
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
13.07.2017, 08:37  [ТС] 5
Сам класс нужен, т.к. объект для лямбды сначала нужно подготовить. Для простоты можно представить, что мы достаем его из контекста по классу и применяем к нему лямбду.
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
13.07.2017, 12:03 6
можно через reflection достать generic параметр у function, иначе только передавать класс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.07.2017, 12:03
Помогаю со студенческими работами здесь

JavaFx+Hibernate+Spring "don't inject bean Caused by: java.lang.NullPointerException"
Здравствуйте. Очень нужна Ваша помощь. Сделал конфигурацию. Если запускать с главного класса(начала работы приложения), то бин создаёться и...

Generic типы
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools |...

Создание объекта в generic
Добрый вечер! Есть интерфейс Num и класс Matrix&lt;T extends Num&gt;. При попытке создать новый объект типа T в Matrix выдаёт ошибку Cannot...

Задать generic рефлекция
Привет всем. Мучаюсь с такой проблемой. Я даже не знаю возможно ли это, но мне очень надо что б было возможно) Например есть объект, а я...

Аналог System.Collections.Generic.IEnumerable<out T>
Какой аналог есть в Java System.Collections.Generic.IEnumerable&lt;out T&gt; из C#?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Простая нейросеть на КуМир: Создание и обучение
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
Исполнитель Водолей в КуМир: Решение задач
EggHead 16.03.2025
Разработка алгоритмического мышления — одна из ключевых задач для начинающих программистов, и система КуМир предлагает отличный способ погрузиться в этот процесс. Среди множества исполнителей в этой. . .
Исполнитель Чертежник в КуМир: Решение задач
EggHead 16.03.2025
Представьте, что вы можете рисовать на бесконечной координатной плоскости, перемещая точку, которая оставляет след. По вашей команде она может поднять перо и двигаться, не оставляя следа, или. . .
Исполнитель Робот в КуМир: Решение задач
EggHead 16.03.2025
КуМир (Комплект Учебных МИРов) — это учебная среда программирования, разработанная специально для обучения базовым концепциям алгоритмизации. Её главная фишка — использование русскоязычного. . .
Исполнитель Черепаха в КуМир: Решение задач
EggHead 16.03.2025
Представьте, что вы впервые учитесь программировать, а перед вами стоит задача заставить маленькую виртуальную черепашку рисовать на экране. Звучит забавно? Эта идея зародилась ещё в 1967 году, когда. . .
Конвейеры данных с Apache Kafka
Javaican 16.03.2025
В мире, где данные стали новой нефтью, Apache Kafka зарекомендовал себя как мощный инструмент для построения надежных и масштабируемых конвейеров данных. Созданный изначально командой LinkedIn в 2011. . .
Deno против Node.js: Будущее JavaScript рантайма
run.dev 16.03.2025
За последнее десятилетие Node. js стал абсолютным лидером среди JavaScript-рантаймов и фактическим стандартом для серверной разработки на JavaScript. Но в 2018 году тот же разработчик, который создал. . .
SwiftUI или UIKit - что выбрать для нового приложения iOS?
mobDevWorks 16.03.2025
Когда Apple представила SwiftUI на WWDC 2019, многим показалось, что дни UIKit сочтены. Новый декларативный фреймворк предлагал радикально иной подход к разработке интерфейсов. Вместо кропотливого. . .
Docker: Руководство для начинающих по созданию первого приложения
Mr. Docker 16.03.2025
Docker — это платформа, которая упаковывает ваше приложение и все его зависимости в стандартизированные блоки, называемые контейнерами. Эти контейнеры изолированы друг от друга и от основной системы,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru