更改String的默认编码(byte )

有没有办法改变String(byte [])构造函数使用的编码? 在我自己的代码中,我使用String(byte [],String)来指定编码,但我使用的是无法更改的外部库。 String src = “with accents: é à”; byte[] bytes = src.getBytes(“UTF-8”); System.out.println(“UTF-8 decoded: “+new String(bytes,”UTF-8”)); System.out.println(“Default decoded: “+new String(bytes)); 这个输出是: UTF-8解码:带重音:éà 默认解码:带重音:éà 我试过更改系统属性file.encoding但它不起作用。

在Spring JSP页面中使用集合时的Hibernate LazyInitializationException

我有这样的实体: @Entity @Table(name = “ASSESSMENT”) public class Assessment { //All other fields.. @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = “assessment”) @OrderBy(value = “order ASC”) private List assessmentParts = new LinkedList(); public List getAssessmentParts() { return assessmentParts; } //All other getters/setters } 另一个: @Entity @Table(name = “ASSESSMENT_PART”) public class AssessmentPart { //All other fields @ManyToOne(fetch […]

unit testing“本机”Java类在哪里?

为了“有趣”我将松散的几个Java类移植到PHP(例如java.util.regex.Matcher ),所以我希望能够为这些运行/移植unit testing: java.lang.StringBuilder java.util.regex.Pattern java.util.regex.Matcher 我在哪里可以找到它们? 任何半新版本的测试都会有所帮助。

为什么JComboBox会忽略PrototypeDisplayValue

与这两个post@iMohammad相关联, 使用JButton增加/减少textArea中的字体大小和单击JButton Java时更改字体样式 …,我面临着来自JComboBox的非常有趣的问题,方法是将setPrototypeDisplayValue作为参数传递对于JComboBox’s size在屏幕上JComboBox’s size 请问如何动态调整JComboBox大小取决于Font ,同样适用于我在sscce中尝试过的另一个JComponents import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComboBoxFontChange extends JFrame { private static final long serialVersionUID = 1L; private JComboBox cbox = new JComboBox(); private JTextField tfield = new JTextField(“Change”); private JLabel label = new JLabel(“Cash”); private JButton button = new JButton(“++ Font”); private JTextField text; […]

Java:如何“重启”静态类?

我有一个静态类(Foo)和一个主类(Main) 请参阅Main.java: public class Main { public static void main(String[] args) { System.out.println(Foo.i); // 0 Foo.i++; System.out.println(Foo.i); // 1 // restart Foo here System.out.println(Foo.i); // 1 again…I need 0 } } 见Foo.java: public class Foo { public static int i = 0; } 有没有办法重启或重置静态类? 注意:我需要这个,因为我正在使用jUnit测试静态类,我需要在第二次测试之前清理参数。 编辑 几乎解决方案: 使用StanMax答案,我可以这样: Main.java public class Main { public static […]

可打印的打印BufferedImage大小不正确

所以我在这里尝试的是打印BufferedImage,一切正常,直到你看到结果。 结果很大,印刷量很大,并且在出于某种原因打印时不会扩大尺寸。 我使用((MM * DPI)/25,4)根据毫米的纸张尺寸计算正确的像素长度,但是当我将它打印到大的时候。 这是我为它写的代码: package frik.main; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.UIManager; import java.awt.event.*; import javax.swing.*; import frik.data.Config; import frik.utils.ImgUtil; public class Previewer implements Config, Printable, ActionListener{ private JFrame Frame; private […]

如何编写一个在java中采用相同类型的两个参数的generics方法?

当我注意到以下代码在没有警告的情况下编译并打印出Integer / String时,我感到非常惊讶: public final class GenericsTest { private static void method(T arg1, T arg2) { System.out.println(arg1.getClass().getSimpleName()); System.out.println(arg2.getClass().getSimpleName()); } public static void main(String[] args) { method(1, “1”); } } 我预计会出现编译错误。 这段代码编译的原因是什么? 确保参数具有相同类型的正确方法是什么? 编辑:有界类型参数怎么样? 我能想到的最好的是: private static void method(T arg1, U arg2) { System.out.println(arg1.getClass().getSimpleName()); System.out.println(arg2.getClass().getSimpleName()); } 不幸的是,java不允许循环约束。 不编译。 这是死路一条吗?

Java方法适用于Windows而不适用于Macintosh?

我有一个真正奇怪的方法,用于隐藏JInternalFrame的标题栏。 现在的困境是在windows平台上的方法工作, ((javax.swing.plaf.basic.BasicInternalFrameUI) aXInternalFrame.getUI()).setNorthPane(null); 但不是在Macintosh上! 任何专家都有任何想法可以解释内部过程使得这种方法在Mac上无法使用。 是否有任何方法可以在两个平台上隐藏JInternalFrame标题栏? 谢谢

Java命令行参数。 使用*作为乘法的参数

我试图从命令行运行java计算器应用程序。 参数如下:operator operand1 operand2。 我可以为+和 – 成功运行java程序。 例如 java calc + 2 4 java calc – 10 4 但是当我试着奔跑的时候 java * 2 5 System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); 给出输出: 的.classpath 。项目 .settings 我通过反复试验发现使用单引号(’*’)解决了我的问题。 我现在有两个问题。 1.使用单引号是否正确? (java calc’*’2 5) 2.在java命令行中*的含义是什么? (我试图在互联网上找到这个,但没有找到太多帮助) 谢谢,Punit

Android在广播接收器中捕获音量增/减按键?

我正在尝试创建一个应用程序,用户可以覆盖音量增大/减小按钮的默认行为(以及屏幕开/关按钮 – 这可能吗?)。 无论如何,使用下面的代码我可以这样做: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { super.onKeyUp(keyCode, event); if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)) { //this is where I can do my stuff return true; //because I handled the event } return false; //otherwise the system can handle it } 但是我希望即使应用程序没有打开也是可能的,因此我为什么要设置一个广播接收器,或者为了实现这一点而在服务中粘贴一些东西。 谢谢你的帮助。