diff options
Diffstat (limited to 'contrib/zpages')
-rw-r--r-- | contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java index b0cf579c..8c1aedae 100644 --- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java +++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java @@ -672,27 +672,22 @@ final class TracezZPageHandler extends ZPageHandler { return stringBuilder.toString(); } + // The return type needs to be nullable when this function is used as an argument to 'match' in + // attributeValueToString, because 'match' doesn't allow covariant return types. + private static final Function<Object, /*@Nullable*/ String> returnToString = + new Function<Object, /*@Nullable*/ String>() { + @Override + public String apply(Object input) { + return input.toString(); + } + }; + @javax.annotation.Nullable private static String attributeValueToString(AttributeValue attributeValue) { return attributeValue.match( - new Function<String, /*@Nullable*/ String>() { - @Override - public String apply(String stringValue) { - return stringValue; - } - }, - new Function<Boolean, /*@Nullable*/ String>() { - @Override - public String apply(Boolean booleanValue) { - return booleanValue.toString(); - } - }, - new Function<Long, /*@Nullable*/ String>() { - @Override - public String apply(Long longValue) { - return longValue.toString(); - } - }, + returnToString, + returnToString, + returnToString, Functions.</*@Nullable*/ String>returnNull()); } |