問題タブ [scalap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - scala スクリプトから scalap を使用することは可能ですか?
scalap
いくつかのケース クラスのフィールド名を読み上げるために使用しています (この質問で説明されているように)。ケースクラスとそれらを分析するために使用するコードの両方scalap
がコンパイルされ、クラスパス上の jar ファイルに配置されています。
今、このコードを使用するスクリプトを実行したいので、指示に従って次のようなものを思いつきました
これは機能しません:
java.lang.ClassCastException: scala.None$ は scala.tools.nsc.interpreter.ByteCode$.caseParamNamesForPath(ByteCode. scala:45) で scala.Option にキャストできません。scala.tools.nsc.interpreter.ProductCompletion.caseNames( ProductCompletion.scala:22)
ただし、すべてをコンパイルすると、コードは正常に機能します。のような追加scala
のオプションを試してみ-savecompiled
ましたが、これは役に立ちませんでした。これはバグですか、それとも原則として機能しませんか? (もしそうなら、誰かが理由を説明できますか?私が言ったように、分析されるケースクラスscalap
はコンパイルされます。)
注: Scala 2.9.1-1 を使用しています。
編集
これが私が本質的にやろうとしていることです(ケースクラスの複数のインスタンスを作成する簡単な方法を提供します):
注: Scala 2.9.2 に移行しましたが、エラーは同じままです (おそらくバグではありません)。
scala - 実行時に Scala コンパイラが必要なのはなぜですか? (Scalap 依存の Play2/Salat)
Scala / Mongo / Casbah / Salat / Play2 を使用していますが、Salat を使用しようとすると、Scalap に依存しているようです。
アプリケーションを実行すると正常に動作しますplay run
がplay start
、次のスタックを取得します。
scala/tools/nsc/util/ClassPath$JavaContext
Scalaコンパイラプロジェクトにあるので、SBT依存関係を追加しました:
今でもうまく動作しplay start
ます。
しかし、実行時に scala コンパイラーに依存してプロジェクトを実行しなければならないのは普通ですか? play run
また、scala コンパイラに依存
しなくても機能するのはなぜですか? 本番モードで実行されていない場合、自動的に組み込まれますか?
ありがとう