草庐IT

scala-lang

全部标签

java - 如何使用 Scala (50.0/51.0) 发出更新的类文件版本?

我想用scalac创建的类测试新的类型检查字节码validator。scalac目前输出49.0版类文件,但新的类型检查validator仅在51.0版后才强制使用。我尝试使用ProGuard“预验证”类(实际上将它们转换为50.0版),但我不确定新validator是否自动回退到旧的类型推断validator。如何将类文件转换为51.0版(或者如何找出在加载50.0版类文件时使用的validator)? 最佳答案 似乎FJBG(NSC用来生成字节码的库)一些努力支持StackMap但我不知道它有多远。如果您询问scala-inte

java - 用于修复格式错误的 URI 的 Scala 或 Java 库

有没有人知道一个好的Scala或Java库可以解决格式错误的URI中的常见问题,例如包含应该转义但没有转义的字符? 最佳答案 我测试了一些库,包括现在遗留的URIUtil的HTTPClient没有感觉我找到了任何可行的解决方案。通常,我已经用这种类型的java.net.URI取得了足够的成功。虽然构造:/***Triestoconstructanurlbybreakingitupintoitssmallestelements*andencodeeachcomponentindividuallyusingthefullURIconst

java.lang.OutOfMemoryError : GC overhead limit exceeded excel reader 错误

当我尝试运行下面的程序时,出现java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常。该程序的主要方法访问指定目录并遍历所有包含.xlsx的文件。这工作正常,因为我在任何其他逻辑之前对其进行了测试。它调用xlsx的方法基本上将xlsx文件转换为csv并将其附加到现有文件中,也可以正常工作。但是当我把它放在for循环中时,这就是我得到这个异常的时候。我猜它在打开xlsx并将其转换为csv和打开第二个的时间后会发生冲突,也许我必须以某种方式关闭此行:FileinputFile=newFile("C:\\Users\\edennis.AD\\

使用 Java 9 模块 (JPMS) 时出现 java.lang.NoSuchMethodError

我正在尝试使用JPMS模块组合JavaFX、SpringBoot和VLCJ。在没有SpringBoot的情况下,我的module-info.java文件中的一切正常:modulemyapplication.module{requiresjavafx.controls;requiresjavafx.fxml;requiresjavafx.web;requiresvlcj;requiresorg.kordamp.iconli.core;requiresorg.kordamp.ikonli.javafx;requiresorg.kordamp.ikonli.fontawesome5;expo

java - java.lang.Thread 本身是线程安全的类吗?

我想知道我们是否需要外部同步才能使用java.lang.Thread中的方法?例如,我们可以调用方法t1.isAlive()吗?从任何线程没有外部同步并期望它返回:trueift1hasalreadybeenstarted,falseotherwise.或者调用java.lang.Thread中的方法需要外部同步吗??publicstaticvoidmain(Stringargs[]){finaljava.lang.Threadt1=newjava.lang.Thread(newjava.lang.Runnable(){@Overridepublicvoidrun(){while(tr

java - 为什么这段 Scala 代码会在运行时抛出 IllegalAccessError?

我有一个简单的应用程序:objectTestextendsApp{implicitdeft2mapper[X,X0R)=(f(t._1),f(t._2))}println("Hello!")val(foo,bar)=(1,2)map(_*2)println((foo,bar))}(t2mapper来自thisanswer。)代码编译正常:$scalac-versionScalacompilerversion2.9.1--Copyright2002-2011,LAMP/EPFL$scalac-uncheckedTest.scala$但是在运行时,它会抛出一个IllegalAccessEr

java - 在将 java 转换的 List 迭代为不可变时使用 scala 并行性

我正在尝试使用Scala并行性来加快执行时间。因此,要将javaArrayList转换为不可变数组,我使用:varimList=scala.collection.JavaConversions.asScalaBuffer(normalQLFolderList)然后在迭代时利用多个内核,我使用:for(i我是否以正确的方式利用Scala并行性?在这种情况下迭代一个列表。asScalaBuffer是否有很大的性能影响? 最佳答案 可以在恒定时间内转换为并行副本的集合包括可变和不可变HashMap和哈希集、范围、vector和数组。对于所

java - 通过 JVM TI 代理将 invokestatic 添加到 java/lang/Object.<init> 会导致 JVM 因段错误而崩溃

我正在尝试跟踪JVM中所有对象的分配情况。在关于分配分析器的几个文档中提到最简单的方法是这样的:添加invokestaticTracker.trackAllocation()V指令java/lang/Object.(通常它由一条return指令组成,我们在它前面加上invokestatic,所以现在是2条指令)。(我知道这种方法很慢并且不会跟踪数组分配,但我想从最简单的解决方案开始。而且我不会将对分配对象的引用传递给跟踪器,但这将在稍后添加。)类文件在onClassLoadedHook中使用JVMTI代理进行检测。但是,添加invokestatic之后指令JVM因段错误而崩溃。Trac

java.lang.ExceptionInInitializerError 与 gradle

我已经将java从8更新到9-ea,并将gradle从2.13更新到3.4.1。以下是gradle--version输出。------------------------------------------------------------Gradle3.4.1------------------------------------------------------------Buildtime:2017-03-0319:45:41UTCRevision:9eb76efdd3d034dc506c719dac2955efb5ff9a93Groovy:2.4.7Ant:ApacheAn

java.lang.NoClassDefFoundError : Could not initialize class when launching spark job via spark-submit in scala code 错误

我有一个代码,如下所示objectErrorTest{caseclassAPIResults(status:String,col_1:Long,col_2:Double,...)deffuncA(rows:ArrayBuffer[Row])(implicitdefaultFormats:DefaultFormats):ArrayBuffer[APIResults]={//callsomeAPIanggetresultsandreturnAPIResults...}//MARK:loadpropertiesvalprops=loadProperties()privatedefloadPr