2017-03-23 5 views
0

汎用式リストを返すメソッドを作成しようとしています。特定の型のExpressionListを汎用型に変換する方法

特定のタイプのExpressionListを作成していますが、最終的にはそのExpressionListを汎用ExpressionListに変換したいと思っています。しかし、残念ながら私は変換に悩まされています。

以下はコードスニペットです。

私はジェネリック式リストを返すメソッドを作成しようとしています。

特定のタイプのExpressionListを作成していますが、最終的にはそのExpressionListを汎用ExpressionListに変換したいと思っています。しかし、残念ながら私は変換に悩まされています。

以下はコードスニペットです。

public static <T> ExpressionList<T> generateTransactionList(Map<String,String[]> params, Party party){ 

    String filter = ""; 

    Date startDate = new Date(params.get("startDate")[0]); 
    Date endDate = new Date(params.get("endDate")[0]+" 23:59:59"); 
    //endDate.setDate(endDate.getDate() + 1); 

    ExpressionList<TypeOne> TypeOneExpressionList = null; 
    ExpressionList<TypeTwo> TypeTwoResponseExpressionList = null; 
    if(settleState == 3) { 
     TypeTwoResponseExpressionList = TypeTwo.find.select("*").where() 
       .between("response_date", startDate, endDate) 
       .eq("status", "failed"); 
    } 
    else { 
       acquiringTransactionExpressionList = AcquiringTransaction.find.select("*").where() 
        .between("transactionTime", startDate, endDate) 
        .ne("acquiringTransactionStatusType.id", 99); 

      } 

    ExpressionList<T> returningTypeOneExpressionList = null; 
    Class<T> convert = null; 
    if(TypeOneExpressionList != null) { 
     TypeOneExpressionList.orderBy("id desc" ); 
     Iterator<TypeOne> iterator = TypeOneExpressionList.findIterate(); 
     while(iterator.hasNext()) { 
      returningTypeOneExpressionList.add((Expression) convert.cast(iterator.next())); 
     } 
    } 
    else { 
     TypeTwoResponseExpressionList.orderBy("id desc" ); 
     Iterator<TypeTwo> iterator = TypeTwoResponseExpressionList.findIterate(); 
     while(iterator.hasNext()) { 
      returningTypeOneExpressionList.add((Expression) convert.cast(iterator.next())); 
     } 
    } 
    return returningTypeOneExpressionList; 
} 

ありがとうございます。

答えて

0

私は答えを見つけました。これを実際に試していないのは本当に悪いです。

私はちょうど以下のコードを変更しました。

public static <T> ExpressionList<T> generateTransactionList(Map<String,String[]> params, Party party){ 

String filter = ""; 

Date startDate = new Date(params.get("startDate")[0]); 
Date endDate = new Date(params.get("endDate")[0]+" 23:59:59"); 
//endDate.setDate(endDate.getDate() + 1); 

ExpressionList<TypeOne> TypeOneExpressionList = null; 
ExpressionList<TypeTwo> TypeTwoResponseExpressionList = null; 
if(settleState == 3) { 
    TypeTwoResponseExpressionList = TypeTwo.find.select("*").where() 
      .between("response_date", startDate, endDate) 
      .eq("status", "failed"); 
} 
else { 
      acquiringTransactionExpressionList = AcquiringTransaction.find.select("*").where() 
       .between("transactionTime", startDate, endDate) 
       .ne("acquiringTransactionStatusType.id", 99); 

     } 

ExpressionList<T> returningAcquiringTransactionExpressionList = null; 
    Class<T> convert = null; 
    if(acquiringTransactionExpressionList != null) { 
     acquiringTransactionExpressionList.orderBy("id desc" ); 

      returningAcquiringTransactionExpressionList = (ExpressionList<T>) acquiringTransactionExpressionList; 

    } 
    else { 
     acquiringTransactionResponseExpressionList.orderBy("id desc" ); 
     returningAcquiringTransactionExpressionList = (ExpressionList<T>) acquiringTransactionResponseExpressionList; 
    } 
return returningTypeOneExpressionList; 

}

関連する問題