2015-02-25 1 views
0

В моей модели Существует различные постоянные поля, которые имеют различную аннотацию, такие как @Column, @OneToMany и т.д.печать fileds, который имеет определенную аннотацию в классе Java

@OneToMany(mappedBy = "Clinte", cascade = CascadeType.ALL, orphanRemoval = true) 
private Set<Takeover> takeovers = new HashSet<Takeover>(); 

@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true) 
@JoinColumn(name = "CAR_ID") 
private Car carID; 

@Column(length = 50, name = "TYPE") 
private String type; 

как я могу напечатать упорный поля, которые имеют аннотацию @Column и имеют тип String? например, в моем коде, я просто хочу напечатать «тип», поскольку он имеет аннотацию @Column и имеет тип String.

+1

Я не буду отвечать подробно, но я дам вам место, чтобы посмотреть. Библиотека отражений позволит вам получить список всех полей и проверить их на тип и аннотации (предположим, что аннотации имеют поддержку во время выполнения: http://docs.oracle.com/javase/7/docs/api/java/ языки/отражение/пакет-summary.html –

ответ

1

Я нашел способ сделать это:

 Field[] fields=myClass.class.getDeclaredFields(); 
     for (int i=0; i != fields.length; ++i) { 
     Field field=fields[i]; 
     Column info=field.getAnnotation(Column.class); 
     if (info == null || field.getType() != String.class){ 
       continue; 
       } 
     System.out.println("Field Name : "+ field.getName() + " Field type: " +field.getType().getSimpleName()); 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^