Если у меня есть:
public class MyClass{
MyClass(Object b){
//Some code here
}
}
И я делаю:
MyClass X = new MyClass(new SomeOtherClass());
Это работает просто отлично, я предполагаю, потому что у каждого класса есть Object как суперкласс.
Но если я сделаю:
import java.util.function.Predicate;
public class MyClass{
MyClass(Predicate<Object> b){
//Some more code here
}
}
А потом:
MyClass X = new MyClass((SomeOtherClass s) -> {
//Even more code
return true;
});
Я получаю сообщение об ошибке:
Incompatible parameter types in lambda expression: expected Object but found SomeOtherClass
Разве я не смогу отправить объект SomeOtherClass
в этом лямбда-выражении?
Я использую класс Object
, потому что хочу получить не только SomeOtherClass
, но и SomeOtherClassXPTO
.
Я попытался найти это и ничего не нашел до сих пор, поэтому мои извинения заранее, если об этом уже спрашивали.