2016-07-29 105 views
1

我想了解一个使用lambda将对象返回到接口的引用变量的java程序。我想将lambda转换为简单的java函数,但不知道如何去做。将lambda转换为函数/方法

的程序如下: -

public class AgentLicenseLazyModel extends CoreDataModel<AgentLicenseModel> { 

    public AgentLicenseLazyModel(final List<AgentLicenseModel> entities) { 
     super(AgentLicenseModel.class, entities, (sortField, sortOrder) -> { 
      return new AgentLicenseLazySorter(sortField, sortOrder); 
     }); 
    } 
} 

这里是抽象类:

public abstract class CoreDataModel<T extends AbstractEntityModel> extends LazyDataModel<T> { 

private final Class<T> entityClass; 
private final List<T> entities; 
private final CoreDataSorterProducer<T> coreDataSorterProducer; 

public CoreDataModel(final Class<T> entityClass, final List<T> entities, final CoreDataSorterProducer<T> coreDataSorterProducer) { 
    this.entityClass = entityClass; 
    this.entities = entities; 
    this.coreDataSorterProducer = coreDataSorterProducer; 

    if (entities != null) { 
     setRowCount(entities.size()); 
    } 
} 

如何这个程序转换成简单的Java程序不使用拉姆达的学习。请帮忙。

编辑: 这里是CoreDataSorterProducer:

@FunctionalInterface 
public interface CoreDataSorterProducer<T extends AbstractEntityModel> { 

    CoreDataSorter<T> produce(String sortField, SortOrder sortOrder); 
} 
+2

向我们展示'CoreDataSorterProducer'类源 – Andrew

+0

我加了CoreDataSorterProducer ..谢谢 –

回答

7

lambda表达式的主体是CoreDataSorterProducer<AgentLicenseModel>接口的一个抽象方法的实施。

您可以使用实现CoreDataSorterProducer<AgentLicenseModel>的匿名类实例替换lambda表达式。

public class AgentLicenseLazyModel extends CoreDataModel<AgentLicenseModel> { 
    public AgentLicenseLazyModel(final List<AgentLicenseModel> entities) { 
     super(AgentLicenseModel.class, entities, new CoreDataSorterProducer<AgentLicenseModel>() { 

      public AgentLicenseLazySorter theMethodName (TheTypeOfSortField sortField, TheTypeOfSortOrder sortOrder) 
      { 
       return new AgentLicenseLazySorter(sortField, sortOrder); 
      } 
     }); 
    } 
} 

注意theMethodNameTheTypeOfSortFieldTheTypeOfSortOrder应由CoreDataSorterProducer接口的方法名称和类型它的参数来代替。

+0

嗨,这非常有帮助。谢谢 –