|
|
@@ -15,7 +15,7 @@ import net.ranides.assira.generic.AnyFunction;
|
|
|
*/
|
|
|
public final class MethodPointer<T> extends AnyFunction<T> {
|
|
|
|
|
|
- private Object object;
|
|
|
+ private final Object object;
|
|
|
private final Method pointer;
|
|
|
|
|
|
private MethodPointer(Object object, Method method) {
|
|
|
@@ -28,11 +28,15 @@ public final class MethodPointer<T> extends AnyFunction<T> {
|
|
|
public T apply(Object[] arguments) {
|
|
|
return (T)Invoker.invoke(object, pointer, arguments);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public MethodPointer<T> bind(Object that) {
|
|
|
- this.object = that;
|
|
|
- return this;
|
|
|
+ return new MethodPointer<T>(object, pointer);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean unbinded() {
|
|
|
+ return null==object && !MemberUtils.isStatic(pointer);
|
|
|
}
|
|
|
|
|
|
@Override
|