복붙노트

[SCALA] scala.collection.Seq <문자열>에서 변환 된 java.util.List <문자열> 자바 코드에서

SCALA

scala.collection.Seq <문자열>에서 변환 된 java.util.List <문자열> 자바 코드에서

나는 자바에서 스칼라 메소드를 호출하고 있습니다. 그리고 목록에 서열에서 변환을 확인해야합니다.

내가 scala.collection.JavaConversions._에서 asJavaCollection 방법을 사용하지 않을 수 있습니다 나는 스칼라 방식의 서명을 수정할 수 없습니다

방법의 어떤 아이디어는 내가 이것을 달성 할 수 있습니까?

스칼라 2.9.3을 사용하여

해결법

  1. ==============================

    1.당신은 JavaConversions를 사용하여 올바른 궤도에있어,하지만 당신이 특정 변환에 필요한 방법은 seqAsJavaList입니다 :

    당신은 JavaConversions를 사용하여 올바른 궤도에있어,하지만 당신이 특정 변환에 필요한 방법은 seqAsJavaList입니다 :

    java.util.List<String> convert(scala.collection.Seq<String> seq) {
        return scala.collection.JavaConversions.seqAsJavaList(seq);
    }
    

    업데이트 : JavaConversions는 사용되지 않지만 동일한 기능을 JavaConverters에서 찾을 수 있습니다.

    java.util.List<String> convert(scala.collection.Seq<String> seq) {
        return scala.collection.JavaConverters.seqAsJavaList(seq);
    }
    
  2. ==============================

    2.그들이 사용되지 않으며 곧 제거되기 때문에 스칼라 2.9 때문에, 당신은 JavaConversions에서 implicits을 사용할 수 없습니다. 대신, (아주 좋은 보이지 않지만)이 같은 자바 목록 사용 변환 패키지에 서열을 변환 :

    그들이 사용되지 않으며 곧 제거되기 때문에 스칼라 2.9 때문에, 당신은 JavaConversions에서 implicits을 사용할 수 없습니다. 대신, (아주 좋은 보이지 않지만)이 같은 자바 목록 사용 변환 패키지에 서열을 변환 :

    import scala.collection.convert.WrapAsJava$;
    
    public class Test {
        java.util.List<String> convert(scala.collection.Seq<String> seq) {
            return WrapAsJava$.MODULE$.seqAsJavaList(seq);
        }
    }
    
  3. ==============================

    3.2.12 이후이 권장되는 방법입니다 :

    2.12 이후이 권장되는 방법입니다 :

    public static <T> java.util.List<T> convert(scala.collection.Seq<T> seq) {
        return scala.collection.JavaConverters.seqAsJavaList(seq);
    }
    

    다른 모든 방법 @deprecated ( "2.12.0"이후, "사용 JavaConverters 또는 ToJavaImplicits을 고려"=)

  4. ==============================

    4.(경우에 당신은 스칼라 코드에서이 변환을 수행 할)

    (경우에 당신은 스칼라 코드에서이 변환을 수행 할)

    당신이 정말 쉽게 할 JavaConverters를 사용할 수 있습니다.

    import collection.JavaConverters._
    val s: Seq[String] = ...
    val list: java.util.List<String> = s.asJava
    
  5. from https://stackoverflow.com/questions/17737631/convert-from-scala-collection-seqstring-to-java-util-liststring-in-java-code by cc-by-sa and MIT license