This is an old revision of the document!
Functional Programming
Treating methods as first-class objects requires lambda functions. Very basic example:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
testTheThings();
}
// to create a basic lambda function you need to have an interface for it.
// that serves as a template for what the function will have as inputs and outputs:
interface MyInterface {
int doTheThings(int i);
}
// now we can assign a variable to that interface:
MyInterface myInterface = (x -> myFunction(x));
// myFunction must be defined
int myFunction(int i) {
return i + 1;
};
// and we can call the function through the interface and print the result
void testTheThings() {
int result = myInterface.doTheThings(4);
Log.v("javademo2", "having done the things resulted in " + result);
}
};