2015-08-25 7 views
6

उपयोग करते हुए एनोटेशन मैं JavaPoet का उपयोग कर एक कोड जनरेटर लेखन और वर्गजनरेट कर रहा है JavaPoet

पर टिप्पणी के डाल करने के लिए उदाहरण के लिए की जरूरत है कर रहा हूँ:

package some.package 

import org.hibernate.annotations.CacheConcurrencyStrategy; 
import javax.persistence.Entity; 
import javax.persistence.Cache 

@Entity 
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class SomeClass { 
} 

मेरे कोड इस तरह दिखता है:

TypeSpec spec = TypeSpec 
    .classBuilder("SomeClass") 
    .addAnnotation(Entity.class) 
    .addAnnotation(AnnotationSpec.builder(Cache.class) 
    .addMember("usage", "$L", CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
    .build()) 
    .build() 

यह कोड कक्षा उत्पन्न करता है लेकिन परिणामी कोड में CacheConcurrencyStrategy के लिए आयात विवरण गुम है। मैं कोड कैसे उत्पन्न कर सकता हूं ताकि सभी आवश्यक कोड आउटपुट हो जाएं?

उत्तर

8

इस प्रयास करें:

TypeSpec spec = TypeSpec 
    .classBuilder("SomeClass") 
    .addAnnotation(Entity.class) 
    .addAnnotation(AnnotationSpec.builder(Cache.class) 
     .addMember("usage", "$T.$L", CacheConcurrencyStrategy.class, 
      CacheConcurrencyStrategy.NONSTRICT_READ_WRITE.name()) 
     .build()) 
    .build() 

$T enum वर्ग को दिखाता है और $L enum निरंतर।

+0

यह काम किया। धन्यवाद – nvalada

संबंधित मुद्दे