### Question:
MavenCoordinatesImpl implements MavenCoordinates, Serializable { @Override public String toString() { return toString; } MavenCoordinatesImpl(
            @NonNull String groupId,
            @NonNull String artifactId,
            @NonNull String version);  MavenCoordinatesImpl(
            @NonNull String groupId,
            @NonNull String artifactId,
            @NonNull String version,
            @Nullable String packaging,
            @Nullable String classifier); @NonNull @Override String getGroupId(); @NonNull @Override String getArtifactId(); @NonNull @Override String getVersion(); @NonNull @Override String getPackaging(); @Nullable @Override String getClassifier(); boolean compareWithoutVersion(@NonNull MavenCoordinates coordinates); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); @NonNull @Override String getVersionlessId();  }### Answer:
@Test public void toStringTest() { checktoString("foo:bar:1.0@jar", "foo", "bar", "1.0", null, null); checktoString("foo:bar:1.0:class@jar", "foo", "bar", "1.0", "class", null); checktoString("foo:bar:1.0@aar", "foo", "bar", "1.0", null, "aar"); checktoString("foo:bar:1.0:class@aar", "foo", "bar", "1.0", "class", "aar"); }