Java静态元编程

我想实现一个基于现有“prototype”类生成新类的注释处理器。 import java.util.List @MyAnnotation class MySuperClassPrototype { static MySuperClassPrototype createInstance() { return new MySuperClassPrototype(); } } 由于下面的代码。 将生成以下新源文件(编译单元): import java.util.List class MySuperClass { static MySuperClass createInstance() { return new MySuperClass(); } public void specialAddedMethod() { /*…*/ } } 我想复制所有顶级import语句和静态成员,而不是原型类的静态成员。 我用Compiler Tree API(com.sun.source.tree)移动了很多。 我可以打印出Tree数据类型,同时用new class name替换old。 但是有些问题似乎很难。 如果我在树中获得Tree.Kind.IDENTIFIER,我如何找到它引用的实际类。 我需要用MySuperClass标识符替换所有出现的MySuperClassPrototype标识符,然后打印出整个树。 这可行吗? 类似地,我需要过滤掉@MyAnnotation注释,然后再用Tree.Kind.IDENTIFIER或Tree.Kind.MEMBER_SELECT表示。 如何找到此标识符引用的实际注释类? 另一个问题是打印树。 如果我使用toString方法,我得到了不错的结果,但是构造函数被打印为具有“”名称的方法而不是与其类同名的方法,因此我需要手动打印每种树节点。 你可以看到我在这里附带的代码

正则表达式以分割key = value

我有一个像这样的字符串: KEY1=Value1, KE_Y2=[V@LUE2A, Value2B], Key3=, KEY4=V-AL.UE4, KEY5={Value5} 我需要将其拆分以获得具有键值对的Map。 []值应作为单个值传递( KE_Y2是键, [V@LUE2A, Value2B]是一个值)。 我应该用什么正则表达式正确分割它?

打开pdf时MUPDF UnsupportedOperationException

我正在使用MUPDF进行Android项目,但有些Android用户存在问题。 我的报告如下: java.lang.UnsupportedOperationException: Not supported E/AndroidRuntime( 4677): at com.odilogy.mupdf.ReaderView.getSelectedView(ReaderView.java:664) E/AndroidRuntime( 4677): at android.widget.AdapterView.onInitializeAccessibilityEvent(AdapterView.java:951) E/AndroidRuntime( 4677): at android.widget.AdapterView.onRequestSendAccessibilityEvent(AdapterView.java:926) E/AndroidRuntime( 4677): at android.view.ViewGroup.requestSendAccessibilityEvent(ViewGroup.java:704) E/AndroidRuntime( 4677): at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:4952) E/AndroidRuntime( 4677): at android.view.View.sendAccessibilityEventUnchecked(View.java:4933) E/AndroidRuntime( 4677): at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.run(ViewRootImpl.java:6675) E/AndroidRuntime( 4677): at android.os.Handler.handleCallback(Handler.java:733) E/AndroidRuntime( 4677): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime( 4677): at android.os.Looper.loop(Looper.java:136) E/AndroidRuntime( 4677): at android.app.ActivityThread.main(ActivityThread.java:5017) E/AndroidRuntime( 4677): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( […]

ServerEndpoint和web.xml

我有一些Soap,REST servlet和现在一个WebSocket: @ServerEndpoint(“/game”) public class WebSocketgame{ … } 我有下一个麻烦:如果web.xml存在,WebSocket不可见。 在web.xml中描述了jdbc资源,servlets ant等…当我删除web.xml时 – websocket成功可见。 我该如何解决这个问题? 更新web.xml: com.sun.xml.ws.transport.http.servlet.WSServletContextListener ConfigServlet com.example.ConfigServlet 1 MainService com.sun.xml.ws.transport.http.servlet.WSServlet 1 ConfigServlet /ConfigServlet JsonServlet com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.property.packages com.example.json 1 JsonServlet /json/* propfile /WEB-INF/server_config.txt MainService /MainService 30 postgreSQL Datasource example jdbc/postgres javax.sql.DataSource Container

即使在日志中看到“添加事务方法”,方法也不被事务顾问拦截

我有一个@Transactional @Controller ,但它的方法是由Spring MVC框架调用的,没有事务。 在exception跟踪中,我找不到拦截调用的事务顾问: org.hibernate.HibernateException: No Session found for current thread org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1014) org.example.businesslogic.MyController.userLoggedIn(SwiperRest.java:48) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:483) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) 另一方面,日志清楚地表明控制器方法被检测为事务性: DEBUG osbfsDefaultListableBeanFactory – Returning cached instance of singleton bean ‘org.springframework.transaction.config.internalTransactionAdvisor’ DEBUG osbfsDefaultListableBeanFactory – Returning cached instance of singleton bean ‘metaDataSourceAdvisor’ DEBUG ostaAnnotationTransactionAttributeSource – Adding transactional method ‘MyController.userLoggedIn’ […]

JavaFX – 如何更改所选未聚焦行的TableView颜色?

无论我做什么 – 行的颜色保持不变,并具有灰色。 这些更改仅适用于TableView处于焦点时。 我已经尝试了我在网上找到的其他建议,例如来自另一个线程的解决方案: .table-row-cell:selected { -fx-background-color: red; } 似乎没有任何作用,并且当不在焦点时影响行。

从JNI函数传回一个数组而不复制它

我正在尝试使用JNI使用C ++处理大块数据但是我无法理解天气,函数SetArrayRegion将按元素复制数组元素,或者它是否可以将数据留在原位并将其返回到调用java函数。 以下文档是我一直在阅读的内容,但目前仍不清楚发生了什么。 http://download.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html 感谢您的帮助。

Java字符串中的字符数

可能重复: Java:使用unicode上线显示平方根时的字符串长度? 如何获取String中的Unicode字符数? 鉴于泰国字符的char[] : [อ, ภ, ิ, ช, า, ต, ิ] 这在String中出现:อภิชาติ String.length()返回7.我知道(技术上)有7个字符,但是我需要一个能够返回5的方法。这就是屏幕上显示的字符空间的确切数量。

从右到左方向的按钮大小无关紧要

我有9个jbuttons添加到jpanel,面板添加到jscrollpane,它添加到jframe。 http://www.pic1.iran-forum.ir/images/up9/95426323683658592564.jpg 当我通过以下applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);更改框架方向时: applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 面板向右移动,按钮大小固定,不会填充面板,但您在下图中看到滚动条填满了面板的所有宽度 http://www.pic1.iran-forum.ir/images/up9/60975202722295688553.jpg (我使用gridbaglayout添加按钮,使用borderlayout.center添加scrollpane)。 这是java中的错误还是? 编辑:它是最简单的观点。 有帮助吗? import java.awt.BorderLayout; import java.awt.ComponentOrientation; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.*; public class MyFrame extends JFrame{ private JButton[] arrayButton = new JButton[9]; private JButton btnLeft = new JButton(“”); private JScrollPane scpButtons = new JScrollPane(); public MyFrame() { for (int i = 0; […]

Scala遗传算法(GA)库中的模拟二进制交叉(SBX)交叉算子

我在一个很小的研究团队工作,用Scala创建/改编遗传算法库,用于使用Scientific Worklow System进行分布式计算,在我们的例子中,我们使用开源OpenMole软件( http://www.openmole.org/ )。 最近,我尝试理解并重新实现在JMetal Metaheuristics库( http://jmetal.sourceforge.net/ )中编写的SBX交叉运算符,以使其在我们的Scala库中的function版本中进行调整。 我写了一些代码,但是我需要我们的建议或者你对在Java库中定义的SBX的validation,因为源代码( svn中的src )看起来不像这里写的原始等式: http : //citeseerx.ist。 psu.edu/viewdoc/download?doi=10.1.1.33.7291&rep=rep1&type=pdf ,第30页,附件A 第一个问题,我不了解JMetal的java版本,为什么他们使用两个不同的beta值? beta1在方程中使用min [(y1-yL),…]和的第一个arg 使用min […,(yu – y2)]的第二个arg的beta2 ) Beta 1和2用于计算alpha值和2(所以这里和jmetal我们还有两个alpha不同的值alpha1和2)… 同样的问题/问题,我们在jmetal两个计算betaq (java代码)或Deb方程,结果: 第二个问题,符号的含义是什么 用于(2)和(3)程序中的SBX伪算法,与简单β的区别? 特别是当我们想要计算交叉父母的孩子/后代时,就像这里: 编辑 更正no-op if / else块 jmetal中的代码作者给了我Nsga-II算法原始源代码的链接,他解释我Deb的SBX描述与他的实现不同:/ http://www.iitk.ac.in/kangal/codes.shtml 我不明白jmetal和原始源代码中的描述和实现之间的区别,你有解释吗? 正确if / else返回map 开始翻译成scala class SBXBoundedCrossover[G <: GAGenome, F Double = _.nextDouble) extends CrossOver [G, […]