Tag: 动态

如何在Java中动态命名对象?

假设我需要制作一系列String []对象。 我知道,如果我想创建一个名为“test”的字符串数组来保存3个字符串,我就能做到 String [] test = new String [3]; 但是,假设我需要制作一系列这些数组,我希望它们被命名为1,2,3,4,5 …等等。无论我需要多少,我都不知道有多少需要。 我如何实现类似的效果: for (int k=0; k=5; k++){ String[] k = new String[3]; } 哪个会创建5个名为1到5的字符串数组。基本上我希望能够创建一个名称由其他函数决定的数组对象。 我为什么不能这样做? 我只是傻了吗?

是否有一个用于Javareflection的通用“后端”库

我目前正在使用Java实现的专用解释编程语言。 作为语言的一小部分,我想添加调用Java的能力。 在深入研究reflection的所有细节之前,我想知道是否有人知道有一个通用库来执行反向调用Java代码的“后端”部分。 也就是说,我将一个字符串(我定义语法)解析为一些表示Java方法调用(或构造函数或字段访问)的数据结构,然后将该数据结构传递给调用该调用并返回结果的库。 特别是,我希望它已经处理了我不想弄清楚的所有边缘情况: 根据参数类型自动选择正确的方法(如智能Class.getDeclaredMethod()) 处理数组和普通对象引用之间的区别 等等 我花了一点时间在JVM上查看动态语言的实现,但这些通常比我正在寻找的要复杂得多,或者针对特定语言进行了高度优化。 另一种选择是将我的语法转换为某种动态语言的字符串,并使用Rhino或其他东西调用它,但这比我正在寻找的开销稍微多一些。 谢谢!

Log4J动态更改文件路径

我想动态更改log4j日志文件的路径和文件名。 我已经阅读了很多页面,几乎每个人都告诉我应该使用这里的系统属性: 如何动态更改log4j日志文件? 所以我的log4j.properties文件如下所示: log4j.logger.JDBC_LOGGER=INFO,jdbcTests log4j.additivity.JDBC_LOGGER = false log4j.appender.jdbcTests=org.apache.log4j.FileAppender log4j.appender.jdbcTests.File=${my.log} log4j.appender.jdbcTests.layout=org.apache.log4j.PatternLayout log4j.appender.jdbcTests.append = false log4j.appender.jdbcTests.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %C:Line %L – %m%n 在我的main方法中,我将设置我的新系统属性: System.setProperty(“{my.log”, “C:/logfile.log”); 但我只是得到一个错误: log4j:ERROR setFile(null,false) call failed. java.io.FileNotFoundException: at java.io.FileOutputStream.open(Native Method)…. 当我尝试读取我的set系统属性时: System.out.println(System.getProperty(“my.log”)); 它返回null。 我做错了什么?

Java动态加载和卸载.java文件,垃圾收集?

我正在创建一个将长时间运行的Java应用程序,这需要更新的function而不会关闭。 我决定通过以.java文件(从数据库中拉出一个字节数组)的forms加载它来提供这个更新的function,这些文件在内存中编译并实例化。 如果你有一个更好的方式我全都耳朵。 我遇到的问题是,当我在人工环境中进行一些测试时,每次加载这些“脚本”的周期内存占用量会略有增加。 注意:这实际上是我第一次使用java做这样或类似的事情。 我之前在C#中已经完成了这样的事情,加载和卸载.cs文件,并且还有内存占用问题…解决我将它们加载到一个单独的appdomain中,当我重新编译文件时,我只是卸载了那个appdomain并创建了一个新的一个。 入口点 这是我在长时间使用(许多重新编译循环)后用来模拟内存占用的入口方法。 我在短时间内运行它很快就会吃掉500MB +。 这只是临时目录中的两个虚拟脚本。 public static void main( String[ ] args ) throws Exception { for ( int i = 0; i < 1000; i++ ) { Container[ ] containers = getScriptContainers( ); Script[ ] scripts = compileScripts( containers ); for ( Script s : scripts ) s.Begin( […]

如何“动态”将Object类型的实例强制转换为其特定的数据类型?

public Object foo(int opt){ if (opt == 0) return new String(); else if (opt == 1) return new Integer(1); else if (opt == 2) return new Double(1); else if … .. and many more } public void doSomething(String s){..} public void doSomething(Integer i){..} public void doSomething(Double d){..} … and many more doSomething method public static […]

Java动态数组

我正在为java编程,我需要有关Dynamic数组的帮助。 我环顾四周,找不到符合我简单程度的方法。 我在课堂上并不远,只是学习了基础知识,所以我不太了解,但我需要知道如何制作动态数组。 以下是我们给出的两个示例程序: public class DynamicArrayOfInt { private int[] data; public DynamicArrayOfInt() { data = new int[1]; } public int get(int position) { if (position >= data.length) return 0; else return data[position]; } public void put(int position, int value) { if (position >= data.length) { int newSize = 2 * data.length; if (position >= […]

每次加载页面gest后,Xpath都会发生变化

我正在使用Selenium WebDriver和Java。 我正在尝试访问该页面中的“登录ID”文本框,但每次登录和注销时,“登录ID”文本框的XPath值都会更改,因此我无法检测到“登录ID”文本框每次使用相同的代码。 我需要在代码中进行哪些修改才能使用一段代码访问所有动态XPath?

如何在使用JDBC的SELECT查询中使用动态表名

我有5或表来查询\ 我的语法我喜欢这个 String sql2 = “SELECT * FROM ? WHERE Patient_ID = ?”; pst = conn.prepareStatement(sql2); System.out.println(“SQL before values are set “+sql2); System.out.println(“The values of table/test name recieved in TestPrint stage 1 “+tblName); System.out.println(“The values of test name recieved in TestPrint stage 1 “+key); // values are outputted correctly but are not getting set in […]

Java:动态属性

女士们先生们, 我是Java的新手,请原谅我,如果这很明显,但我还没发现很多。 我想在运行时为类创建动态属性(变量)(定义一个可以在运行时通过添加或更改属性和方法来更改的对象)。 原因:我想在GAE中存储一个数据模型,可以在编译应用程序后动态扩展(是的,DataStore允许)。 应该添加哪些属性也存储在DataStore中(这就像使用机器人来构建机器人……有趣)。 Python允许我在运行时添加属性。 Groovy似乎也允许这样做。 “纯粹的”Java世界中唯一指向该方向的东西似乎是“动态代理”。 但是,如果他们能做到这一点,我还无法弄明白。

Wicket动态图像URL

简短的问题:我需要将从数据库中提取的动态图像转换为URL,而无需使用Wicket向显示页面添加组件(例如使用NonCachingImage)。 完美的解决方案(我在其他框架中实现)只是创建一个页面,将图像ID作为url参数并将图像呈现给响应流。 不幸的是,Wicket的Page类扩展了MarkupContainer,它围绕着MarkupStreams。 MarkupStreams不太直接有助于渲染字节数据。 长问题:我正在使用Wicket 1.4.0,在Tomcat 6.0.18中运行。 该图像存储在Postgres数据库中,通过JDBC检索。 图像需要由仅接受图像URL的第三方API呈现。 我有一个模型对象,其中包含字节数据,mime类型和Resource对象,可以从数据库中提取模型并将其添加到响应流。 有任何想法吗?