Cómo implementar un método Java, que llamar a otro método, basado en el nombre de la clase llamando?

tony:

Tenemos una clase Java, WebCenterGrid. Esta clase está llena de métodos para hacer las cosas de una rejilla como la búsqueda de una fila, encontrando un valor de celda, una columna de clasificación. Tenemos varias clases que utilizan esta clase. Las clases que lo usan todos se refieren a diferentes redes, pero la funcionalidad es la misma.

Lo único que difiere es la forma de crear la red. Algunas clases hacen una búsqueda que rellena la rejilla (buscar también refresca). Algunos lo hacen un updateList () para actualizar la red, etc.

Me gustaría añadir un método para WebCenterGrid para actualizar la cuadrícula. El problema es que me dijo que cada método tiene un nombre diferente.

De alguna manera quiero pasar a WebCenterGrid el nombre de un método a llamar para hacer la actualización. He hecho algunas búsquedas y encontró algo de lambda, que yo no comprendía muy bien.

No he utilizado C ++ en un tiempo, pero había un poco de manera de pasar un método en esos métodos. Esta clase está en Java no C ++, pero ¿hay algún tipo de equivalente comprensible?

 public class WebCenterGrid {
    ....
    ....
    public void refresh(Method meth) {
           meth();
    }
 }
GhostCat saludos Monica C.:

Básicamente, hay dos maneras.

Uno es utilizar la reflexión , significa esto: confiando en tiempo de ejecución información de tipo, comúnmente derivado de cuerdas primas. Como decir: Tengo un objeto de clase X, y quiero invocar el método denominado "doTheFoo ()" en ese objeto.

Ver aquí para todos los detalles de gloria.

Una forma un poco mejor es utilizar el MethodHandle clase, en lugar de la clase "en bruto" Método de reflexión. Ver aquí para las manijas.

Pero entonces: la reflexión está sucediendo en tiempo de ejecución. Su código se compila bien, pero si le da ningún detalle equivocado, explota en tiempo de ejecución.

Así que sugiero mirar en lambdas, basado en la función , ver aquí .

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=211860&siteId=1
Recomendado
Clasificación