# Interface StringLookup

All Superinterfaces:
  `Function<String,String>, UnaryOperator<String>`

All Known Subinterfaces:
  `BiStringLookup<U>`

All Known Implementing Classes:
  `StrLookup`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface StringLookup extends UnaryOperator<String>
Lookups a String key for a String value.

This class represents the simplest form of a string to string map. It has a benefit over a map in that it can create the result on demand based on the key.

For example, it would be possible to implement a lookup that used the key as a primary key, and looked up the value on demand from the database.

Since:
  1.3

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default String`
  `apply(String key)`
  Looks up a String key to provide a String value.
  `String`
  `lookup(String key)`
  Deprecated.
  Use `apply(String)`.

  ### Methods inherited from interface Function

  `andThen, compose`

- ## Method Details

  - ### apply

    default String apply(String key)
    Looks up a String key to provide a String value.

    The internal implementation may use any mechanism to return the value. The simplest implementation is to use a Map. However, virtually any implementation is possible.

    For example, it would be possible to implement a lookup that used the key as a primary key, and looked up the value on demand from the database Or, a numeric based implementation could be created that treats the key as an integer, increments the value and return the result as a string - converting 1 to 2, 15 to 16 etc.

    This method always returns a String, regardless of the underlying data, by converting it as necessary. For example:

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("number", Integer.valueOf(2));
        assertEquals("2", StringLookupFactory.mapStringLookup(map).lookup("number"));

    Specified by:
      `apply` in interface `Function<String,String>`
    Parameters:
      `key` - the key to look up, may be null.
    Returns:
      The matching value, null if no match.
    Since:
      1.14.0

  - ### lookup

    @Deprecated String lookup(String key)
    Deprecated.
    Use `apply(String)`.
    Looks up a String key to provide a String value.

    The internal implementation may use any mechanism to return the value. The simplest implementation is to use a Map. However, virtually any implementation is possible.

    For example, it would be possible to implement a lookup that used the key as a primary key, and looked up the value on demand from the database Or, a numeric based implementation could be created that treats the key as an integer, increments the value and return the result as a string - converting 1 to 2, 15 to 16 etc.

    This method always returns a String, regardless of the underlying data, by converting it as necessary. For example:

        Map<String, Object> map = new HashMap<String, Object>();
        map.put("number", Integer.valueOf(2));
        assertEquals("2", StringLookupFactory.mapStringLookup(map).lookup("number"));

    Parameters:
      `key` - the key to look up, may be null.
    Returns:
      The matching value, null if no match.