I am currently working on an application and I would like to have annotated functions that can be used as callbacks.
History
When I used to do Swift development, I remember to use some functions as arguments, you needed to run @objc
.
I would like to do something similar and use @Function
.
Current Code
Function.java
package com.iprogrammer.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target(value={ElementType.METHOD})
public @interface Function{
}
App.java
package dev.davidkeen.annotations;
import java.lang.annotation.Annotation;
public final class App {
private App() {
}
public static void main(String[] args) {
Main main = new Main();
main.run();
}
}
class Main{
public Main(){}
public void run(){
someFunc(someFunc2);
}
void someFunc(Function function){
function();
}
@Function void someFuncTwo(){
System.out.println("Hello");
}
}
Is it posible to parse someFuncTwo
as an argument to someFunc
?
Edit
Reason why I want to use an annotation is becase of the following usage
class AdminController{
private AdminModdle _moddle;
private JFrame _view;
public AdminController{
_view.buttonOne.setAction(actionOne);
_view.buttonTwo.setAction(actionTwo);
}
@Function void actionOne(){
//Do stuff
}
@Function void actionTwo(){
//Do Stuff
}
public JFrame getView(){
return _view;
}
}