2013-07-08 2 views
1

나는 며칠 안에 스칼라로 작업하고 있습니다. 나는이 문제와 정말로 혼란 스럽다. 내 자바 코드자바를 스칼라로 변환 할 때 각 루프의 스칼라에 오류가 발생합니다.

.. 각 스칼라에 대한

@Override 
    public void saveOrUpdateAll(Collection<T> entities) { 
     Session session = getSession(); 
     for (T entity : entities) { 
      session.saveOrUpdate(entity); 
     } 
    } 

스칼라 코드

@Override 
    def saveOrUpdateAll(entities:Collection[T]){ 
     var session:Session = getSession() 
     var entity:T=null 
     for (entity :entities) { 
      session.saveOrUpdate(entity); 
     } 
    } 

검색을

내가 정말 peoblem를 해결하기 위해 노력하지만 난 할 수 없습니다. 그리고 정말 혼란 스러워요하지 .. 여기 .. ​​그리고 고맙습니다 답변을 공유하시기 바랍니다이 문제를 해결하는 방법을 알고 있다면 .. 관련 밀라노와

.. :)

+1

스칼라의'for'에서':'대신'<-'를 원하고'var entity' 라인을 전혀 필요로하지 않습니다. –

+0

@RexKerr u r r8 .. pls이 대답을하고 나는 정답으로 표시 할 것이고 이것은 정말로 완전한 ans thankx를 도울 것입니다 ... –

+1

senia는보다 완전한 정답을 얻었습니다. –

답변

3
override def saveOrUpdateAll(entities: Collection[T]){ 
    import scala.collection.JavaConverters._ 

    val session: Session = getSession() 

    for (entity <- entities.asScala) { 
     session.saveOrUpdate(entity) 
    } 
} 

각에 대한이 있습니다 스칼라에 루프. JavaConverters을 사용하여 컬렉션을 랩핑하고 여기에 for-comprehension을 사용해야합니다.

JavaConvertersWrappers.JCollectionWrapperwithout는 메모리 오버 헤드를 사용 Collection 랩.

+0

당신의 대답에 대한 감사와 그 대답은 정말로 도움이되고 있습니다 .. –

+0

나는 '@Override' 주석은 다음과 같이 사용됩니다. –

+1

@milano : 부모 클래스의 메소드를 오버라이드하려면 [override modifier] (http://www.artima.com/pins1ed/composition-and-inheritance.html#10.8)를 사용해야합니다.). – senia

관련 문제