[slf4j-dev] [JIRA] (SLF4J-485) LoggingEventBuilder addArgument() should take Supplier<?>, not Supplier<Object>
QOS.CH (JIRA)
noreply-jira at qos.ch
Sun Mar 1 21:54:00 CET 2020
Christoffer Hammarström created SLF4J-485:
---------------------------------------------
Summary: LoggingEventBuilder addArgument() should take Supplier<?>, not Supplier<Object>
Key: SLF4J-485
URL: https://jira.qos.ch/browse/SLF4J-485
Project: SLF4J
Issue Type: Bug
Components: Core API
Affects Versions: 2.0.0-alpha1
Reporter: Christoffer Hammarström
Assignee: SLF4J developers list
`addArgument(Supplier<Object>)` prevents passing in any `Supplier<? extends Object>`.
Try the following JUnit 4 test:
{noformat}
import java.util.function.Supplier;
import org.junit.Test;
public class GenericsTest {
@Test
public void testObjectSupplier() {
Supplier<Object> objectSupplier = () -> "Object";
Supplier<String> stringSupplier = () -> "String";
object(objectSupplier);
//object(stringSupplier); // Uncommenting leads to compile failure
//string(objectSupplier); // Uncommenting leads to compile failure
string(stringSupplier);
extendsObject(objectSupplier); // Works fine
extendsObject(stringSupplier); // Works fine
}
private void object(Supplier<Object> objectSupplier) {
System.out.println("object: "+objectSupplier.get());
}
private void string(Supplier<String> stringSupplier) {
System.out.println("string: "+stringSupplier.get());
}
private void extendsObject(Supplier<?> extendsObjectSupplier) {
System.out.println("extends object: "+extendsObjectSupplier.get());
}
}
{noformat}
--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
More information about the slf4j-dev
mailing list