<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def loads(string, *transformers, **kwargs):
 """ Deserializes Java objects and primitive data serialized using ObjectOutputStream from a string. :param string: A Java data string :param transformers: Custom transformers to use :param ignore_remaining_data: If True, don't log an error when unused trailing bytes are remaining :return: The deserialized object """

    # Read keyword argument
    ignore_remaining_data = kwargs.get("ignore_remaining_data", False)

    # Reuse the load method (avoid code duplication)
    return load(
        BytesIO(string), *transformers, ignore_remaining_data=ignore_remaining_data
    )