Tag: java

OpenGL扩展可用在不同的Android设备上

我正在为我的下一个Android游戏写一个OpenGL ES驱动的框架。 目前我支持三种不同的绘制精灵的技巧: 基本的方法:使用顶点数组 (慢) 使用顶点缓冲区对象 (VBOs)(更快) 使用draw_texture扩展(最快,但只适用于基本精灵,即不变换) Vertex数组在OpenGL ES 1.0中受支持,因此在每个Android设备中都受支持。 我猜大多数(如果不是全部)当前的设备也支持VBOs和draw_texture。 我不想猜测,我想知道不同设备支持的扩展名。 如果大多数设备支持VBO,我可以简化我的代码,只关注VBOs + draw_texture。 了解不同设备支持的内容会很有帮助,所以如果您有Android设备,请报告附加信息列表。 🙂 String extensions = gl.glGetString(GL10.GL_EXTENSIONS); 我有一个HTC Hero ,所以我可以分享这些扩展。

如何修复“types列表的expression式需要未经检查的转换…”?

在Java代码片段中: SyndFeedInput fr = new SyndFeedInput(); SyndFeed sf = fr.build(new XmlReader(myInputStream)); List<SyndEntry> entries = sf.getEntries(); 最后一行产生警告 “ Listtypes的expression式需要进行未经检查的转换以符合List<SyndEntry> ” 什么是解决这个问题的适当方法?

JPAhibernate一对一的关系

我有一对一的关系,但是hibernatetool在生成模式时抱怨。 这是一个显示问题的例子: @Entity public class Person { @Id public int id; @OneToOne public OtherInfo otherInfo; rest of attributes … } Person与OtherInfo有一对一的关系: @Entity public class OtherInfo { @Id @OneToOne(mappedBy="otherInfo") public Person person; rest of attributes … } 人是拥有OtherInfo的一面。 OtherInfo是所有者,所以人使用mappedBy来指定Person中的属性名称“otherInfo”。 使用hibernatetool生成数据库模式时,出现以下错误: org.hibernate.MappingException: Could not determine type for: Person, at table: OtherInfo, for columns: [org.hibernate.mapping.Column(person)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292) at […]

AndroidaudioFFT使用audiorecord检索特定的频率大小

我目前正在尝试使用Android来实现一些代码,以检测通过手机麦克风播放多个特定audio范围的时间。 我已经使用AudioRecord类设置了类: int channel_config = AudioFormat.CHANNEL_CONFIGURATION_MONO; int format = AudioFormat.ENCODING_PCM_16BIT; int sampleSize = 8000; int bufferSize = AudioRecord.getMinBufferSize(sampleSize, channel_config, format); AudioRecord audioInput = new AudioRecord(AudioSource.MIC, sampleSize, channel_config, format, bufferSize); 然后读入audio: short[] audioBuffer = new short[bufferSize]; audioInput.startRecording(); audioInput.read(audioBuffer, 0, bufferSize); 执行FFT是我陷入困境的地方,因为我在这方面的经验很less。 我一直在尝试使用这个类: 在Java和复杂类的 FFT 与它一起去 然后我发送以下值: Complex[] fftTempArray = new Complex[bufferSize]; for (int i=0; i<bufferSize; i++) […]

JPA:如何具有相同实体types的一对多关系

有一个实体类“A”。 A类可能有同一types“A”的孩子。 另外“A”应该是它的父母,如果它是一个孩子。 这可能吗? 如果是的话我应该如何映射实体类中的关系? [“A”有一个id列。]

从multithreading获取java.util.HashMap的值是否安全(不需要修改)?

有一种情况是地图将被构build,一旦它被初始化,它将不会再被修改。 然而,它将被访问(仅通过get(key))来自多个线程。 以这种方式使用java.util.HashMap是否安全? (目前,我很高兴地使用java.util.concurrent.ConcurrentHashMap ,并没有任何需要提高性能的措施,但是只要简单的HashMap就足够了就可以了,所以这个问题不是 “我该用哪一个? “这也不是一个performance问题,而是问题是”安全吗?“)

Java 8:Lambdastream,按exception进行过滤

我尝试使用Java 8的Lambdaexpression式时遇到问题。通常情况下,它可以正常工作,但是现在我有了抛出IOException的方法。 最好看看下面的代码: class Bank{ …. public Set<String> getActiveAccountNumbers() throws IOException { Stream<Account> s = accounts.values().stream(); s = s.filter(a -> a.isActive()); Stream<String> ss = s.map(a -> a.getNumber()); return ss.collect(Collectors.toSet()); } …. } interface Account{ …. boolean isActive() throws IOException; String getNumber() throws IOException; …. } 问题是,它不能编译,因为我必须捕捉isActive-和getNumber-Methods的可能exception。 但即使我明确地使用下面的try-catch-Block,它仍然不能编译,因为我没有捕捉到exception。 所以无论是在JDK中有一个错误,或者我不知道如何捕获这些exception。 class Bank{ …. //Doesn't compile either public […]

如何将一个迭代器转换为一个stream?

我正在寻找一种简洁的方式来将Iterator转换为Stream或者更具体地说,将迭代器“查看”为stream。 出于性能的原因,我想避免在新列表中的迭代器的副本: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); 根据评论中的一些build议,我也尝试使用Stream.generate : public static void main(String[] args) throws Exception { Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Stream<String> targetStream = Stream.generate(sourceIterator::next); targetStream.forEach(System.out::println); } 但是,我得到一个NoSuchElementException (因为没有调用hasNext ) Exception in thread "main" java.util.NoSuchElementException at java.util.AbstractList$Itr.next(AbstractList.java:364) at Main$$Lambda$1/1175962212.get(Unknown Source) at java.util.stream.StreamSpliterators$InfiniteSupplyingSpliterator$OfRef.tryAdvance(StreamSpliterators.java:1351) […]

Android应用程序中的dynamicListView

有没有一个工作的例子,演示如何在ListView中dynamic追加额外的行? 例如: 你正在从不同的领域提取RSS提要 然后显示ListView中的前10个项目(当您在后台运行的其他线程继续拉动提要时) 您滚动并到达列表底部,然后单击button查看更多项目 ListView将会附加额外的10个项目,现在总共有20个项目。 任何build议如何做到这一点? 尼古拉斯

如何在Java中创build不可变的对象?

如何在Java中创build不可变的对象? 哪些对象应该被称为不可变的? 如果我有所有静态成员的类是不可改变的?