Вопрос по java, spring – Создание бина перечисления Spring и передача значения вызова метода

17

У меня есть этот синглтон:

   public enum Elvis {
       INSTANCE;
       private int age;

       public int getAge() {
           return age;
       }
   }

Я знаю, как создать боб enum весной:

   <bean id="elvis" class="com.xyz.Elvis" factory-method="valueOf">
           <constructor-arg>
               <value>INSTANCE</value>
           </constructor-arg>
   </bean> 

Как передать int, возвращаемый INSTANCE.getAge (), в другой конструктор bean?

Любая идея, как вы могли бы передать только Элвис в поле, ожидающем Enum? Если я использую # {T (Elvis)}, он говорит мне, что не может конвертировать из java.lang.Class в java.lang.Enum. Cameron
+1 для Элвиса, лол :) Petar Minchev

Ваш Ответ

1   ответ
13

Spring Expression Language:

<constructor-arg value = "#{elvis.age}" />

или безelvis боб:

<constructor-arg value = "#{T(com.xyz.Elvis).INSTANCE.age}" />
Небольшая поправка для вызова метода age: & lt; значение конструктора-аргумента = & quot; # {T (com.xyz.Elvis) .INSTANCE.age ()} & quot; / & GT; DarVar

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