2012-05-22 30 views
17

Tôi có Singleton này:Tạo một Spring bean enum và đi qua các giá trị của một lời gọi phương thức

public enum Elvis { 
     INSTANCE; 
     private int age; 

     public int getAge() { 
      return age; 
     } 
    } 

tôi biết làm thế nào để tạo ra đậu enum trong mùa xuân:

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

Làm thế nào để vượt qua int được trả về bởi INSTANCE.getAge() vào một hàm tạo hạt khác?

+1

+1 cho Elvis, lol :) –

+0

Bất kỳ ý tưởng làm thế nào bạn sẽ vượt qua chỉ Elvis đến một lĩnh vực mong đợi một Enum ? Nếu tôi sử dụng # {T (Elvis)} nó cho tôi biết nó không thể chuyển đổi từ java.lang.Class sang java.lang.Enum. – Cameron

Trả lời

13

Bạn có thể sử dụng Spring Expression Language:

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

hoặc không elvis đậu:

<constructor-arg value = "#{T(com.xyz.Elvis).INSTANCE.age}" /> 
+1

Sửa đổi nhỏ để gọi phương thức độ tuổi: DarVar

Các vấn đề liên quan