当我们start()通过传递一个Runnable对象作为参数调用一个Thread时,我们可以传递相同的Runnable引用来启动多个线程吗?
public class MyMain {
public static void main(String[] args) {
MyRunnableImpl impl = new MyRunnableImpl();
new Thread(impl).start();
new Thread(impl).start();
}
}
Run Code Online (Sandbox Code Playgroud) 嗨,IllegalArgumentException当我点击任何控件或场景的空白区域时,我得到了.下面是堆栈跟踪.我不能为每个控件编写一个方法MouseEvent.当我点击场景中的空白区域或禁用的控件时,你能否建议一个解决方案来取消这个鼠标事件.
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1435)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
at javafx.event.Event.fireEvent(Event.java:171)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3324)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3164)
at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3119)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1559)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2261)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:228)
at com.sun.glass.ui.View.handleMouseEvent(View.java:528)
at com.sun.glass.ui.View.notifyMouse(View.java:922)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29)
at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud) 我正在研究词法分析器和解析器语法,并使用 ANTLR 来创建基于 .g4 文件的解析器和词法分析器。但是,我很困惑 pushMode 和 popMode 通常做什么?
OPEN : '[' -> pushMode(BBCODE) ;
TEXT : ~('[')+ ;
mode BBCODE;
CLOSE : ']' -> popMode ;
Run Code Online (Sandbox Code Playgroud)
词法分析器语法中的 OPEN、pushMode、BBCODE、CLOSE 和 popMode 是什么意思?我尝试搜索这些模式,但没有明确的定义和解释。
我从elements name属性创建一个ID,并且它们有一些不允许的字符,我想创建一个函数,如果它们不在列表中,则替换charcters _.我试图谷歌它,但我发现的只是regexp示例,其中不是我想要的地方.
这就是我所做的:
/([^A-Za-z0-9[\]{}_-])\s?/g
Run Code Online (Sandbox Code Playgroud)
但是这并不排除]和[,也许一些其他字符了.
我怎样才能让它替换所有字符_未[A-Za-z0-9],-,_,.,:?
EDITED
..如果第一个字符不是数字,则将其设为一个.
如果有人知道更好的方法,请分享.
java ×2
antlr ×1
antlr4 ×1
javafx-2 ×1
javascript ×1
jquery ×1
lexer ×1
mouseevent ×1
parsing ×1
regex ×1