Wie emulieren Sie das gleiche Verhalten mit Lambdas Kotlin.Wie emulieren Sie das gleiche Verhalten in Kotlin
Java-Code:
public interface OnClickListener{
public void onClick();
}
public class Sample {
OnclickListener mOnclickListener;
public void setOnclickListener(OnclickListener l){
if(l!=null)
mOnclickListener =l;
}
public void performClick()
{
mOnclickListener.onClick(5);
}
}
public class SampleImpl{
Sample sample=new Sample();
sample.setOnClickListener(new OnClickListner(){ onClick{}});
sample.performClick();
}
Per Kotlin empfängt Funktionsparameter der Schnittstelle mit einzelnen Verfahren in Lambda darstellen kann, ich versuche ...
Kotlin Code:
var sample= Sample();
sample.setOnClickListener({Int -> println("action performed") })
sample.performClick(); //will call this method whenever needed.
class Sample {
var click=null;
fun setOnClickListener(onClick : (Int)->Unit){
click= onClick // trying to assign and want to use it in another
funciton. I know it is wrong, how to achieve
this.
}
fun performClick()
{
click(5)
}
}
Gibt es eine Alternative, um dies zu erreichen?
Semikolons in Kotlin sind optional – Moira
Zunächst einmal Ihre Der Code sollte syntaxmäßig korrekt sein, so als würde 'onClick() 'keinen Parameter erhalten. Warum übergeben Sie 5 an' mOnclickListener.onClick (5); '? –