使用Struts 2迭代HashMap <String,ArrayList >

我目前在Struts2和s:iterate标签方面遇到了一些困难。 我想显示一个标签,它是HashMap中的关键字,后面跟着一个表(HashMap中的值),其中包含了ArrayList中每个元素,用于HashMap中的每个元素。 例如, label ———- | test1 | ———- | test2 | ———- label2 ———- | test1 | ———- | test2 | ———- 我看了很多关于HashMap的例子,但没有找到我的案例。 我怎样才能做到这一点 ? 谢谢,

使用generics与GSON

我正在使用GSON将JSON解码为类型为T的对象,例如 public T decode(String json) { Gson gson = new Gson(); return gson.fromJson(json, new TypeToken() {}.getType()); } 然而,这会返回一个例外 – java.lang.AssertionError:意外类型。 期望的一个:java.lang.reflect.ParameterizedType,java.lang.reflect.GenericArrayType,但得到:sun.reflect.generics.reflectiveObjects.TypeVariableImpl,用于类型标记:T 我认为通过使用TypeToken我避免了类型擦除。 我错了吗? 谢谢

用Java录制语音

我想用Java应用程序录制语音; 我想这基本上是一个将在客户端运行的applet。 但我不知道该怎么做……任何想法? 另外,我想播放录制的声音。 我听说过Java Speech API。 有什么想法可以帮忙吗?

在Java中,新创建的文件的默认位置是什么?

在Java中,新创建的文件的默认位置是什么?

Java未捕获全局exception处理程序

我有一个应用程序,需要编写自定义全局未捕获exception处理程序。 我已经阅读了所有的stackoverflow线程,并且每个线程都缺少一个如何实现它的简单明了的例子。 请考虑以下简单示例: public static void log(String msg) throws Exception { String logPath = “/application/logs/java.log”; Calendar c = new GregorianCalendar(); SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); String now = format.format(c.getTime()); PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(logPath, true))); out.println(now + ” ” + msg); out.close(); } 它抛出一个标准exception,它只是一个标准输出。 我如何实现我自己的exception,通过将错误输出到日志文件中的简单方法覆盖标准exception? 显然,实际的应用程序要大得多,我们正在谈论未捕获的exception,这就是为什么try / catch块不是选项。 更新:如果你能用一个非常明确的完整例子来回答,因为我发现了几个像@RamonBoza提供的例子,但我不知道如何实现它们,这就是这个问题的全部内容。 更新2:所以我试着在下面的答案中测试唯一的例子,它显然不起作用。 我创建了一个新的类文件“MyRunnable”并将代码粘贴到其中: package […]

有没有人使用或编写过Ant任务来编译(Rhino)JavaScript到Java字节码?

我想使用Rhino JavaScript编译器将一些JavaScript编译为.class字节码文件,以便在项目中使用。 看起来这应该已经存在,因为Groovy,NetREXX(!)和Jython分别有groovyc,netrexxc和jythonc任务。 有没有人使用或编写过这样的Ant任务,或者任何人都可以提供一些如何写一个的提示? 理想情况下,它可以通过某种方式解决JavaScript或Java类之间的依赖关系。

将字符串转换为类对象

我使用toString()方法将类对象存储到字符串中。 现在,我想将字符串转换为该类对象。 怎么做? 请帮我提供源代码。

Oracle在Java中的RETURNING INTO使用(JDBC,Prepared Statement)

我正在使用JDBC来执行如下所示的Oracle语句: “INSERT INTO MYTABLE(MYDATA) VALUES(?) RETURNING MY_CALCULATED_DATA INTO ?” // MYTABLE’s def makes MY_CALCULATED_DATA be auto-generated by DB on insert 我找到了几种在Java中调用上述语句的方法,主要是: 使用OraclePreparedStatement: ps = (OraclePreparedStatement)conn.prepareStatement(sql); ps.setString(1, “myvalue”); ps.registerReturnParameter(2, Types.VARCHAR); ps.execute(); rs = ps.getReturnResultSet(); rs.next(); System.out.print(rs.getString(1)); 使用CallableStatement: cs = conn.prepareCall(sql); cs.setString(1, “myvalue”); cs.registerOutParameter(2, Types.VARCHAR); cs.execute(); System.out.print(cs.getString(1)); 问题: 方法#2抛出“SQLException:并非所有返回参数都已注册” , 但是 ,如果我将SQL语句包装成“ BEGIN..END; ” – 则方法#2工作正常。 为什么方法#1在没有“ […]

在派生类上禁用inheritance的方法

有没有办法在Java派生类中“禁用”从基类inheritance的方法和/或字段? 例如,假设您有一个具有rotate()方法的Shape基类。 您还可以从Shape类派生各种类型: Square , Circle , UpwardArrow等。 Shape有一个rotate()方法。 但是我不想让Circle的用户可以使用rotate() ,因为它没有意义,或者是UpwardArrow用户,因为我不希望UpwardArrow能够旋转。

在Java中按值映射自动排序

我需要在Java中有一个自动按值排序的映射 – 以便在我添加新的键值对或更新现有键值对的值时随时对其进行排序,甚至删除一些条目。 还请记住,这张地图将会非常大(数百万,甚至是数百万条目的大小)。 所以基本上我正在寻找以下function: 假设我们有一个实现上述function的“SortedByValuesMap”类,我们有以下代码: SortedByValuesMap sorted_map = new SortedByValuesMap(); sorted_map.put(“apples”, 4); sorted_map.put(“oranges”, 2); sorted_map.put(“bananas”, 1); sorted_map.put(“lemons”, 3); sorted_map.put(“bananas”, 6); for (String key : sorted_map.keySet()) { System.out.println(key + “:” + sorted_map.get(key)); } 输出应该是: bananas:6 apples:4 lemons:3 oranges:2 特别是,对我来说真正重要的是能够随时获得具有最低值的条目 – 使用如下命令: smallestItem = sorted_map.lastEntry(); 哪个应该给我’橘子’条目 编辑:我是一个Java新手所以请详细说明你的答案 – 谢谢 EDIT2:这可能会有所帮助:我正在使用它来计算大文本文件中的单词(对于那些熟悉的人:特别是n-gram)。 所以我需要建立一个地图,其中键是单词,值是这些单词的频率。 但是,由于限制(如RAM),我想只保留X最常用的单词 – 但事先你不能知道哪些是最常用的单词。 因此,我认为它可能起作用的方式(作为近似)是开始计算单词,当地图达到上限(如1 mil条目)时,将删除最不频繁的条目,以便将地图的大小保持为总是1密耳。