2017-03-15 8 views
0

프로그램은 주어진 입력에 대해 동의어 인 모든 을 반환합니다. 그러나이 코드는 Java 1.8 용입니다. Java 1.6에서이 코드를 변환하는 방법.람다 식 Java 1.8 코드를 Java 1.6

model.listIndividuals().forEachRemaining(ind -> { 

if(((Resource)ind).getLocalName().toString().equalsIgnoreCase(input)){    
System.out.println("Synonyms of " + ((Resource)ind).getLocalName().toString() + " are:");    
      ind.listPropertyValues(isSynonymOf).forEachRemaining(val -> {     
    System.out.println(" * " + ((Resource) val).getLocalName().toString()); 

      }); 
     } 
    }); 
+0

하지 하찮게합니다. 첫째, Java 1.6 (및 1.7)은 수명이 다되었습니다. 왜 그것을 사용해야합니까? 둘째, [scala 2.11.1] (http://www.scala-lang.org/news/2.11.1)은 Java 6에서 실행됩니다. 람다 (그러나 약간 다른 문법)를 가지고있다. –

+0

@Elliott Frisch 실제로 자바 1.6을 사용해야한다는 제약이 있습니다. 위의 코드를 Java 1.6 용으로 변환하는 방법을 모르겠습니다. – Tolga

+1

['Iterator.forEachRemaining (java.util.function.Consumer)'] (https://docs.oracle.com/javase/8/docs/api) /java/util/Iterator.html#forEachRemaining-java.util.function.Consumer-) Javadoc은 (부분적으로) * 기본 구현은 다음과 같이 동작합니다. while (hasNext()) action.accept (next()); '* (Java 1.6에서 구현 가능), 또는 scala를 사용할 수 있습니다. 나는 SO를 코드 작성 서비스가 아니기 때문에 이것을 변환하지 않을 것입니다. 나는 잠자리에 들기 직전입니다. 테스트 할 수 없습니다. –

답변

3

이 시도 :

Iterator<Individual> iterInd = model.listIndividuals(); 
while (iterInd.hasNext()) { 
    Individual ind = iterInd.next(); 
    if (ind.getLocalName().equalsIgnoreCase(input)) { 
     System.out.println("Synonyms of " + ind.getLocalName() + " are:"); 
     NodeIterator iterVal = ind.listPropertyValues(isSynonymOf); 
     while (iterVal.hasNext()) { 
      System.out.println(" * " + iterVal.next().getLocalName()); 
     } 
    } 
} 
+0

내 새로 게시 된 질문을보고 싶으십니까? 고맙습니다 – Tolga