2016-07-04 13 views
2

Upgrade ich diese seltsamen ‚nicht statisch‘ Fehler immer nach 2,4-2,5 verbessernd, wenn ich ‚Aktivator Kompilierung‘ laufen:Formatters.register Fehler kompilieren, nachdem sie von 2,4

non-static method <T>register(java.lang.Class<T>,play.data.format.Formatters.SimpleFormatter<T>) cannot be referenced from a static context 

public MyController() { 
    Formatters.register(Xpto.class, new XptoConverter()); 
} 

XptoConverter:

public class XptoConverter extends SimpleFormatter<Xpto> { 
    @Override 
    public Xpto parse(String input, Locale l) throws ParseException { 
    return new Xpto().setId(Long.valueOf(input)); 
    } 

    @Override 
    public String print(Xpto xpto, Locale l) { 
    return xpto.getId().toString(); 
    } 
} 

Antwort

2

Die Methoden sind nicht mehr statisch; Der Formatierer wird injiziert. Siehe https://www.playframework.com/documentation/2.5.x/JavaForms#Register-a-custom-DataBinder. Siehe auch https://github.com/playframework/playframework/pull/5734

Sie müssen

  1. erstellen public class FormattersProvider implements Provider<Formatters>
  2. ein public class FormattersModule extends AbstractModule
  3. die FormattersModule aktivieren erstellen (die die Umwandlung der Fall ist) in application.conf