If you think the Android project droid-fu listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright (C) 2007 Google Inc. Licensed under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
* or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*//*fromwww.java2s.com*/package com.google.common.base;
/**
* A transformation from one object to another. For example, a {@code
* StringToIntegerFunction} may implement
* <code>Function<String,Integer></code> and transform integers in {@code
* String} format to {@code Integer} format.
* <p>
* The transformation on the source object does not necessarily result in an
* object of a different type. For example, a {@code FarenheitToCelsiusFunction}
* may implement <code>Function<Float,Float></code>.
* <p>
* Implementations which may cause side effects upon evaluation are strongly
* encouraged to state this fact clearly in their API documentation.
*
* @param <F>
* the type of the function input
* @param <T>
* the type of the function output
* @author Kevin Bourrillion
* @author Scott Bonneau
*/publicinterface Function<F, T> {
/**
* Applies the function to an object of type {@code F}, resulting in an
* object of type {@code T}. Note that types {@code F} and {@code T} may or
* may not be the same.
*
* @param from
* the source object
* @return the resulting object
*/
T apply(F from);
/**
* Indicates whether some other object is equal to this {@code Function}.
* This method can return {@code true} <i>only</i> if the specified object
* is also a {@code Function} and, for every input object {@code o}, it
* returns exactly the same value. Thus, {@code function1.equals(function2)}
* implies that either {@code function1.apply(o)} and {@code
* function2.apply(o)} are both null, or {@code
* function1.apply(o).equals(function2.apply(o))}.
* <p>
* Note that it is always safe <em>not</em> to override
* {@link Object#equals}.
*/boolean equals(Object obj);
}