Dian That fixed the problem thanks you. It would appear that someone has taken it upon themselves to redefine part of the Java standard library in org.apache.flink.table.api._
NIck > On 26 Sep 2019, at 15:16, Dian Fu <dian0511...@gmail.com> wrote: > > Hi Nick, > >>> [error] ………………/src/main/scala/org/example/Job.scala:30:13: object util is >>> not a member of package org.apache.flink.table.api.java >>> [error] import java.util.ArrayList > > > The error message shows that it tries to find "util.ArrayList" under package > "org.apache.flink.table.api.java". So you can try one of the following two > solutions: > 1) Don't import "org.apache.flink.table.api._" > 2) Use absolute import: "import _root_.java.util.ArrayList" > > Regards, > Dian > >> 在 2019年9月26日,下午10:04,Nicholas Walton <nwal...@me.com >> <mailto:nwal...@me.com>> 写道: >> >> I’ve shrunk the problem down to a minimal size. The code >> >> package org.example >> >> import org.apache.flink.table.api._ >> import org.apache.http.HttpHost >> >> import java.util.ArrayList >> >> object foo { >> >> val httpHosts = new ArrayList[HttpHost] >> httpHosts.add(new HttpHost("samwise.local", 9200, "http")) >> >> } >> will not compile, but remove the import org.apache.flink.table.api._ and all >> is well >> >> Nick >> >> >>> On 26 Sep 2019, at 12:53, Nicholas Walton <nwal...@me.com >>> <mailto:nwal...@me.com>> wrote: >>> >>> I’m having a problem using ArrayList in Scala . The code is below >>> >>> import org.apache.flink.core.fs._ >>> import org.apache.flink.streaming.api._ >>> import org.apache.flink.streaming.api.scala._ >>> import org.apache.flink.table.api._ >>> import org.apache.flink.table.api.scala._ >>> import org.apache.flink.table.sinks._ >>> import org.apache.http.HttpHost >>> import org.slf4j.LoggerFactory >>> >>> import java.util.ArrayList >>> >>> object Job { >>> >>> val httpHosts = new ArrayList[HttpHost] >>> httpHosts.add(new HttpHost("samwise.local", 9200, "http")) >>> ….. >>> >>> } >>> >>> Scala refuses to recognise ArrayList. The IDE InteliJ likewise flags >>> java.util as not existing, even though it recognises ArrayList and suggest >>> auto-insertion of the import java.utils.ArrayList statement. The >>> compilation errors are >>> >>> [error] ………………/src/main/scala/org/example/Job.scala:30:13: object util is >>> not a member of package org.apache.flink.table.api.java >>> [error] import java.util.ArrayList >>> [error] ^ >>> [error] ………………/src/main/scala/org/example/Job.scala:34:23: not found: type >>> ArrayList >>> [error] val httpHosts = new ArrayList[HttpHost] >>> [error] ^ >>> [error] two errors found >>> [error] (Compile / compileIncremental) Compilation failed >>> >>> Without the ArrayList reference the code compiles with no errors. >>> >>> The sbt build file, if it helps is, >>> >>> resolvers in ThisBuild ++= Seq("Apache Development Snapshot Repository" at >>> "https://repository.apache.org/content/repositories/snapshots/ >>> <https://repository.apache.org/content/repositories/snapshots/>", >>> Resolver.mavenLocal) >>> >>> name := "Flink MultiChannel Project" >>> >>> version := "0.1-SNAPSHOT" >>> >>> organization := "org.example" >>> >>> scalaVersion in ThisBuild := "2.11.0" >>> >>> val flinkVersion = "1.8.1" >>> >>> val flinkDependencies = Seq( >>> "org.apache.flink" %% "flink-scala" % flinkVersion , >>> "org.apache.flink" %% "flink-table" % "1.7.2" , >>> "org.apache.flink" %% "flink-connector-elasticsearch" % flinkVersion, >>> "org.apache.flink" %% "flink-streaming-scala" % flinkVersion, >>> "org.apache.httpcomponents" % "httpclient" % "4.5.10", >>> "org.apache.httpcomponents" % "httpcore" % "4.4.11") >>> // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore >>> <https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore> >>> >>> lazy val root = (project in file(".")). >>> settings( >>> libraryDependencies ++= flinkDependencies) >>> >>> mainClass in assembly := Some("org.example.Job") >>> >>> // make run command include the provided dependencies >>> run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in >>> (Compile, run), runner in (Compile, run)) >>> >>> // exclude Scala library from assembly >>> assemblyOption in assembly := (assemblyOption in >>> assembly).value.copy(includeScala = false) >>> >>> >>> TIA >>> >>> Nick >> >