我想提供一些方法生成的值的注释。 我到目前为止尝试过: public @interface MyInterface { String aString(); } @MyInterface(aString = MyClass.GENERIC_GENERATED_NAME) public class MyClass { static final String GENERIC_GENERATED_NAME = MyClass.generateName(MyClass.class); public static final String generateName(final Class<?> c) { return c.getClass().getName(); } } 以为GENERIC_GENERATED_NAME是static final ,它抱怨说 注释属性MyInterface.aString的值必须是常量expression式 那么如何实现呢?
我正在写一个Mandelbrot分形浏览器,我想以一种聪明的方式实现颜色循环。 给定一个图像,我想修改它的IndexColorModel。 据我所知,没有办法修改IndexColorModel,也没有办法给一个图像一个新的IndexColorModel。 事实上,我认为没有办法提取其颜色模型或图像数据。 看来,唯一的解决scheme是坚持用于创build图像的原始图像数据和调色板,手动创build一个新的调色板与旋转的颜色,创build一个新的IndexColorModel,然后从数据创build一个全新的图像和新的颜色模型。 这一切似乎是太多的工作。 有没有更简单快捷的方法? 这是我能想出的最好的解决scheme。 此代码创build一个1000×1000像素的图像,并显示以每秒30帧循环的颜色animation。 (旧) import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; public class ColorCycler { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } private static void createAndShowGUI() { JFrame jFrame = new JFrame("Color Cycler"); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.add(new MyPanel()); jFrame.pack(); jFrame.setVisible(true); […]
所以我遇到的问题似乎是只在Linux上发生的错误。 我试图让我的挥杆应用程序logging,当一个键被按下,然后检测到该键被释放。 现在,不应该有问题,因为KeyListener应该为我处理。 问题是,当我按住键时,我得到了很多重复的keyPressed()/ keyReleased()事件,而不是只有一个keypressed()。 有没有人有一个解决scheme或解决方法知道什么时候一个密钥是真的在Linux上发布? 谢谢。
我正在使用Apache POI将数据导出到Excel文件。 在一个奇怪的要求中,我需要使用这个POI在Excel中embedded一个文件。 我有这个文件,可以被采取成stream或字节数组。 search了很多时间之后,我确信POI是否真的支持我的要求。 我们可以将文件embedded到Excel中吗? 🙁 干杯,Anoop
这是我的弹簧安全configuration: <http pattern="/auth/login" security="none" /> <http pattern="/auth/loginFailed" security="none" /> <http pattern="/resources/**" security="none" /> <http auto-config="true" access-decision-manager-ref="accessDecisionManager"> <intercept-url pattern="/auth/logout" access="permitAll"/> <intercept-url pattern="/admin/**" access="ADMINISTRATIVE_ACCESS"/> <intercept-url pattern="/**" access="XYZ_ACCESS"/> <form-login login-page="/auth/login" authentication-failure-url="/auth/loginFailed" authentication-success-handler-ref="authenticationSuccessHandler" /> <logout logout-url="/auth/logout" logout-success-url="/auth/login" /> </http> authenticationSuccessHandler扩展了SavedRequestAwareAuthenticationSuccessHandler确保用户被redirect到他最初请求的页面。 但是,由于/auth/login被标记为security="none" ,如果用户在login后访问login页面,则无法将用户成功redirect到主页。我相信这也是正确的用户体验 。 我也尝试了下面的内容,但是Principal对象总是为null ,大概是因为security="none"属性。 @RequestMapping(value = "/auth/login", method = GET) public String showLoginForm(HttpServletRequest request, Principal principal) { if(principal […]
我必须处理打印对话框(在浏览器中单击ctrl-p时出现的对话框)。 我试着用: Alert printDialog = driver.switchTo().alert(); printDialog.dismiss(); 但它没有工作。 我也无法赶上它的窗户把手,因为这不是一个窗口… 是否有可能处理这些对象,以及如何?
System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE); 是真的。 我知道在Java中的整数是32位,不能超过2 ^ 31-1,但我不明白为什么加1到MAX_VALUE结果在MIN_VALUE而不是某种exception。 没有提到像透明转换到更大的types,就像Ruby一样。 这种行为指定的地方? 我可以依靠吗?
我一直在与SwingWorker合作一段时间,结果出现了一个奇怪的行为,至less对我来说。 我清楚地明白,由于性能方面的原因,一次调用publish()方法的调用就被一次调用了。 这对我来说是完全有意义的,我怀疑SwingWorker会保留某种队列来处理所有的调用。 根据教程和API,当SwingWorker结束执行时, doInBackground()正常结束或工作线程从外部取消,然后调用done()方法。 到现在为止还挺好。 但是我有一个例子(类似于教程中显示的那样), 在 done()方法执行之后 ,有process()方法调用。 由于这两个方法都在Event Dispatch Thread中执行,我希望done()在所有process()调用完成后执行。 换一种说法: 预期: Writing… Writing… Stopped! 结果: Writing… Stopped! Writing… 示例代码 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; public class Demo { […]
我的基准testing 结果显示,当分支有15%(或85%)的可能性而不是50%时,性能最差。 任何解释? 代码太长,但相关部分在这里: private int diff(char c) { return TABLE[(145538857 * c) >>> 27] – c; } @Benchmark int timeBranching(int reps) { int result = 0; while (reps–>0) { for (final char c : queries) { if (diff(c) == 0) { ++result; } } } return result; } 它计算给定string中BREAKING_WHITESPACE字符的数量。 结果显示当分支概率达到约0.20时突然的时间下降(性能增加)。 有关降的更多细节 。 改变种子显示更奇怪的事情发生。 请注意,除了靠近悬崖时,表示最小值和最大值的黑线非常短。
在Java中,我试图找出包含在一个string中的值是否是双倍的?