どの解決策が良いですか?空のラムダを使用するか、空のラムダをデフォルトのパラメータとして渡しますか?何とか空のラムダを最適化するでしょうか?何もしない新しいインスタンスを作成しますか?デフォルト値としてnullまたは空のラムダ
class Test1(val action:() -> Unit = {})
残念ながら、私は、生成されたバイトコードを理解していません。この
var1 = (Function0)null.INSTANCE;
編集のようなものを逆コンパイルは私たちに
private static final Test1 test11 = new Test1((Function0)null, 1, (DefaultConstructorMarker)null);
を与えた後、最終的にラムダが渡されるよう
val test11 = Test1()
を分析することができます: 隠し質問があります:コトルはどのように空を扱うのですか?デフォルト値としてのラムダ?
あなたが達成しようとしているもの、または最適化しようとしているものによって、どちらの方が良いでしょうか? – miensol
私は、不要な、空のインスタンスを持っていないと思います。私は最も簡単な解決策はNULL可能なラムダを持つことですが、それは醜い構造の '' 'アクション?.vvv()' ''を意味します。 –
@PawełByszewski '' 'class Test1(val action:() - > Unit = {})' ''に関するあなたの懸念は何ですか? – ruX