如果我有:
public class MyClass{
MyClass(Object b){
//Some code here
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做:
MyClass X = new MyClass(new SomeOtherClass());
Run Code Online (Sandbox Code Playgroud)
我假设它工作得很好,因为每个类都有 Object 作为超类。
但是,如果我这样做:
import java.util.function.Predicate;
public class MyClass{
MyClass(Predicate<Object> b){
//Some more code here
}
}
Run Code Online (Sandbox Code Playgroud)
进而:
MyClass X = new MyClass((SomeOtherClass s) -> {
//Even more code
return true;
});
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
Incompatible parameter types in lambda expression: expected Object but found SomeOtherClass
Run Code Online (Sandbox Code Playgroud)
我不应该能够SomeOtherClass
在该 lambda 表达式中发送对象吗?我使用该Object
课程是因为我不仅希望能够收到SomeOtherClass
,还希望能够收到SomeOtherClassXPTO
。我尝试查找此问题,但到目前为止什么也没发现,所以如果之前有人问过这个问题,我提前表示歉意。
当我尝试显示新的工具提示时,在销毁旧的工具提示后,我在 Chrome 控制台中收到“Uncaught TypeError: Cannot read property 'trigger' of null”。
然后,当我在挖掘引导代码时,我发现了这个:
我怀疑这是我得到的异常的原因:
在创建新工具提示时,我尝试使用“选择器”和“容器”属性。有效的一件事是在另一个按钮上添加一个事件侦听器,以销毁工具提示,这样当我再次单击注册时,它可以正常工作并且不会引发异常。
该示例可以在(单击注册两次)中找到:https : //jsfiddle.net/08o4qgj5/1/ 代码:
$("form#register").on("click", "button[name='btnRegister']", function () {
//Destroy tooltip if exists
$("input[name='email']").tooltip('destroy');
//Adds new one
$("input[name='email']").tooltip({title: "CYKA BLYAAAAAAT, IDI NAHUI!",
placement: 'bottom',
template:'<div class="tooltip" role="tooltip">' +
'<div class="tooltip-arrow"></div>' +
'<div class="tooltip-inner"></div>' +
'</div>'});
//Shows it
$("input[name='email']").tooltip('show');
});
$("form#register").on("click", "button[name='btnDestroy']", function () {
//Destroys tooltip
$("input[name='email']").tooltip('destroy');
});
Run Code Online (Sandbox Code Playgroud)
在我向您展示的示例中,这样做有点没用,因为只有 1 个输入。但是在我的网站上,我想要发生的是:
我发现有人遇到的最相似的问题是:Bootstrap 3 Tooltip 闪烁, 但这并没有为我解决。
提前致谢。