Tag: java

Java构造函数

我正在尝试学习如何在Java中指定类构造函数。 我开始明白,他们指定了这个类所创build的对象的实例variables的types。 它们也可以用来设置实例variables的初始值。 以下示例来自Sun网站上的Java教程: public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } 在你的类源代码中,你应该把构造函数放在哪里? 这些参数是variables的名称?(int startCadence,int startSpeed,int startGear)还是齿轮,节奏和速度variables的名称? (int startCadence,int startSpeed,int startGear)和齿轮,节奏和速度有什么区别? 万一我的教官或盐湖社区学院的任何一位pipe理员遇到过这个问题,让我明确我的意图。 这个问题张贴在学术诚实的最大精神。 我问这个问题寻求一般的build议,并帮助理解使用Java编程语言的正确方法。 我决不会利用别人的工作,把它当作我自己的工作。 我使用这里提供的答案作为我理解的一般帮助。 我自己做所有的工作,不要复制回答我的问题的人提供的工作。

为什么这个Java代码花括号({})在方法之外?

我准备参加一个javaauthentication考试,并且在练习testing中看到过这样的代码: class Foo { int x = 1; public static void main(String [] args) { int x = 2; Foo f = new Foo(); f.whatever(); } { x += x; } // <– what's up with this? void whatever() { ++x; System.out.println(x); } } 我的问题是…在方法之外用花括号写代码有效吗? 这些(如果有的话)有什么影响?

Java太多打开的文件

我正在尝试写入多个文件,19确切地说。 给他们写了几百次之后,我得到了Java IOException:打开的文件过多。 但是,正如我所说,我已经打开了19个文件,并在开始时打开它们。 这里有什么问题? 我可以validation写入是否成功。 编辑:我没有使用try-catch-finally块。 我有函数抛出exception,而不是。 现在我把这个试着抓住他们,他们似乎在做的更好。 大多数人是正确的,我打开比我想象的更多的文件。 还在追踪事情 稍后我会发布更新。 重新编辑:确保所有的文件访问都被try-catch-wrapped包装,从而解决了这个问题。 谢谢

Java:BufferedImage到字节数组并返回

我看到一些人有类似的问题,但我还没有find我正在寻找的东西。 所以,我有一个方法读取input图像,并将其转换为字节数组: File imgPath = new File(ImageName); BufferedImage bufferedImage = ImageIO.read(imgPath); WritableRaster raster = bufferedImage .getRaster(); DataBufferByte data = (DataBufferByte) raster.getDataBuffer(); 我现在想要做的是将其转换回BufferedImage(我有一个应用程序,我需要这个function)。 请注意,“testing”是字节数组。 BufferedImage img = ImageIO.read(new ByteArrayInputStream(test)); File outputfile = new File("src/image.jpg"); ImageIO.write(img,"jpg",outputfile); 但是,这会返回以下exception: Exception in thread "main" java.lang.IllegalArgumentException: im == null! 这是因为BufferedImage img为空。 我认为这与事实有关,在从BufferedImage到字节数组的原始转换中,信息被改变/丢失,使得数据不能再被识别为jpg。 有没有人有任何build议如何解决这个问题? 将不胜感激。

如何用generics实现枚举?

我有一个像这样的通用接口: interface A<T> { T getValue(); } 这个接口具有有限的实例,因此最好将它们作为枚举值来实现。 问题是那些实例有不同types的值,所以我尝试了下面的方法,但它不能编译: public enum B implements A { A1<String> { @Override public String getValue() { return "value"; } }, A2<Integer> { @Override public Integer getValue() { return 0; } }; } 任何想法呢?

如何隐藏Swing应用程序中的游标?

有没有办法隐藏光标(除了使用透明图像作为光标)?

JavaparsingXML文档给“内容不允许在序言。”错误

我正在用Java编写一个程序,它接受一个自定义XML文件并对其进行parsing。 我正在使用XML文件进行存储。 我在Eclipse中得到以下错误。 [Fatal Error] :1:1: Content is not allowed in prolog. org.xml.sax.SAXParseException: Content is not allowed in prolog. at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283 ) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208) at me.ericso.psusoc.RequirementSatisfier.parseXML(RequirementSatisfier.java:61) at me.ericso.psusoc.RequirementSatisfier.getCourses(RequirementSatisfier.java:35) at me.ericso.psusoc.programs.RequirementSatisfierProgram.main(RequirementSatisfierProgram.java:23 ) 包含XML文件的开始部分: <?xml version="1.0" ?> <PSU> <Major id="IST"> <name>Information Science and Technology</name> <degree>BS</degree> <option> Information Systems: Design and Development Option</option> <requirements> <firstlevel type="General_Education" […]

Java,简体检查如果int数组包含int

基本上我的队友一直在说我可以通过使用不同的方法来检查一个int数组是否包含一个int来缩短我的代码,尽pipe他不会告诉我它是什么:P。 当前: public boolean contains(final int[] array, final int key) { for (final int i : array) { if (i == key) { return true; } } return false; } 也试过这个,虽然由于某种原因总是返回false。 public boolean contains(final int[] array, final int key) { return Arrays.asList(array).contains(key); } 任何人都可以帮我吗? 谢谢。

Android的Java版本如何与Java SE版本相关联?

我一直在想,用于Android开发的Java版本是如何与Java SE版本相关的。 例如,我今天正在阅读的是“types推断和通用方法”,它是Java SE 7中添加的一个function。我自己也想知道:“我可以在Android代码中使用它吗? 当然,我可以把代码input到一个Android项目中,看看它是否编译完成,但是我会更高兴地在脑海中做一些映射。 我试着Googlesearch此信息,检查Android文档等,但无法find答案。 编辑:我对语言function更感兴趣,例如Android Java语法版本如何与Java SE语法相关联。

通过inheritance扩展一个枚举

我知道这反对枚举的想法,但是有可能在C#/ Java中扩展枚举吗? 我的意思是在给枚举增加新的值的意义上的“扩展”,也是在从现有枚举inheritance的OO意义上的“扩展”。 我认为在Java中是不可能的,因为它最近才得到它们(Java 5?)。 不过,C#似乎对那些想做疯狂事情的​​人更为宽容,所以我认为这可能是有可能的。 想必它可以通过reflection来破解(而不是你实际上都用这种方法)? 我不一定有兴趣实现任何给定的方法,它只是激起我的好奇心,当它发生在我身上:-)