私は、形質とのように見えるの実装を持っています。私はそれを形質とインプリメンテーションの両方で、インプリメンテーションでのみ、あるいは形質でのみ使う必要がありますか?使い方は
Q
使い方は
6
A
答えて
3
REPLには、逆アセンブルされたJavaコードが表示されるjavapと一緒に私たちにとって正しい答えがあります。提供する唯一の特色レベルで@specialized十分であることをあなたに明らかなはずであるだから今
scala> trait Foo[@specialized(Int) A] { def doSomething(a:A)}
defined trait Foo
scala> :javap -p Foo
Compiled from "<console>"
public interface Foo{
public abstract void doSomething(java.lang.Object);
public abstract void doSomething$mcI$sp(int);
}
scala> class Hello extends Foo[Int] { def doSomething(a:Int)=println(a)}
defined class Hello
scala> :javap -p Hello
Compiled from "<console>"
public class Hello extends java.lang.Object implements Foo$mcI$sp,scala.ScalaObject{
public void doSomething(int);
public void doSomething$mcI$sp(int);
public void doSomething(java.lang.Object);
public Hello();
}
:あなたのREPLのクラスパスにtools.jarをを追加する場合は、次のようなクールなものを行うことができるようになります: Fooインターフェースでは、明らかに2つのメソッド宣言があります。
- をメソッドが定義されている理由:
scala> new Hello res0: Hello = [email protected] scala> res0.doSomething("test") <console>:11: error: type mismatch; found : java.lang.String("test") required: Int
私はあなたの質問に答えることができますが、私は答えることができないいくつかの質問があります:それはトリックがしかし、そこに起こっているように私には見えますその特性の一般的な要約として?
- doSomething(java.lang.Object)メソッドは逆アセンブルされたクラスにありますが、呼び出すことができないのはなぜですか?
+0
ありがとう、私は決してREPLで ':javap'を動作させることはできませんでした。 – paradigmatic
+0
コマンドラインからREPLを使用していますか? IDEA?sbt? – Edmondo1984
関連する問題
- 1. 使い方は
- 2. - 使い方は?
- 3. WM_KEYDOWN:使い方は?
- 4. FastJSON - 使い方は?
- 5. wkhtmltopdf:使い方は?
- 6. ViewDragHelper:使い方は?
- 7. NSValueTransformer、使い方は?
- 8. 元に戻すマネージャの使い方は?それの使い方?
- 9. sstableloaderの使い方は?
- 10. JXDatePickerの使い方は?
- 11. TailCallsの使い方は?
- 12. setuidの使い方は?
- 13. log4j:SocketAppenderの使い方は?
- 14. Androidファイルシステムの使い方は?
- 15. GWTエミュレーションクラスの使い方は?
- 16. boost :: uniform_on_sphereの使い方は?
- 17. ベッドワークの使い方は?
- 18. フラグメントバックポートの使い方は?
- 19. 短い使用方法は?
- 20. collect_listの使い方は?
- 21. javascript scrollTimeoutの使い方は?
- 22. json_encodeの使い方は?
- 23. cats typeclassesの使い方は?
- 24. php deployerの使い方は?
- 25. phpbrowserboxの使い方は?
- 26. CSSLintの使い方は?
- 27. lodashフィルターの使い方は?
- 28. StandartErrorの使い方は?
- 29. sympy.physics.quantum Commutatorの使い方は?
- 30. スニペットの使い方は?
特殊化されていない 'List'を使っていると、どのように特殊化が働くと思いますか?あなたはボクシングを避けることはできません。 –
申し訳ありませんが、投稿のためのコードを簡略化しています。クラスにはAのインスタンスが含まれています(オートボックスにしたくない場合、 'List [Foo [A]]')。 – paradigmatic
しかし、 'Ordering'も特殊化されていません –