小编Tro*_*ols的帖子

Java永远不会通过引用传递,对吗?......对吗?

可能重复:
Java是"传递引用"吗?

我今天发现了一种不寻常的Java方法:

private void addShortenedName(ArrayList<String> voiceSetList, String vsName)
{
     if (null == vsName)
       vsName = "";
     else
       vsName = vsName.trim();
     String shortenedVoiceSetName = vsName.substring(0, Math.min(8, vsName.length()));
     //SCR10638 - Prevent export of empty rows.
     if (shortenedVoiceSetName.length() > 0)
     {
       if (!voiceSetList.contains("#" + shortenedVoiceSetName))
         voiceSetList.add("#" + shortenedVoiceSetName);
     }
}
Run Code Online (Sandbox Code Playgroud)

根据我读过的有关Java传递变量,复杂对象的行为的一切,这段代码应该什么都不做.所以嗯......我在这里错过了一些东西吗?是否有一些微妙的东西丢失在我身上,或者这些代码是否属于thedailywtf?

java pass-by-reference pass-by-value

45
推荐指数
3
解决办法
2万
查看次数

如何在Java中将.js文件加载到Rhino上下文中

这是我的情况:

我可以访问Java类中的Rhino Context对象.我想阅读一堆.js文件并将它们传递给Rhino上下文以对它们进行评估.我真的不想在脚本上下文中使用.js文件中的函数,因为我只是在.js文件中声明的变量可用(这是工具验证的一种问题).

理想情况下,我会读入并尝试一次评估每个文件,而不是逐行.我注意到在Context中有一个方法(参见Rhino API)evaluateReader().我的第一个猜测是我应该获取我想要加载的所有文件,仔细检查它们,并调用此方法为每个文件传递某种读取器对象,而且非常好,现在它们都在我的脚本环境中.

因此,假设我在那里正确的轨道,有人可以告诉我在Java脚本环境中使用.js文件是否有任何良好的做法,或者如果有更好的方法,或者你做了一些其他方式等?

这里没有查找实现细节,只是来自其他人的反馈,这可能已经在他们的一些代码中完成了.使用Java编写脚本语言对我来说是新的.

javascript java rhino

9
推荐指数
1
解决办法
7459
查看次数

有没有使用sun.jdbc.odbc.JdbcOdbcDriver的替代方法?

我最近将我们工作的旧应用程序从Java 1.5迁移到1.6.我注意到在构建期间,我现在得到一个(新的)编译器警告:

... DatabaseSession.java:[9,20] sun.jdbc.odbc.JdbcOdbcDriver is Sun proprietary API and may be removed in a future release

所以我明白这意味着什么,但是有一个众所周知的替代品,更开放标准友好,而不是专有?你使用和/或推荐什么驱动程序,它的优点是什么?

到目前为止,我已采用它在1.6中编译的方法,因此我们将继续使用它,如果下一版本的Java不支持它,我们可以在以后找到替换,并且我可能会尝试禁止显示警告在构建中.我认为错了吗?

api jdbc odbc-bridge

4
推荐指数
1
解决办法
2981
查看次数

重置/删除Swing中的边框

这是一个非常具体的编码问题:

我最近被要求在工作中维护一些旧的Java Swing GUI代码并遇到这个问题:

我将自己的InputVerifier子类名为MyFilenameVerifier附加到JTextField(但它也可能是用于这些目的的任何JComponent).我重写了verify()方法,使其调用super.verify(input)(其中input是要验证的JComponent参数()).如果super.verify(input)回来假,我做:

input.setBorder(BorderFactory.createLineBorder(Color.RED));
Run Code Online (Sandbox Code Playgroud)

这是在我之前很久就开始使用的这个应用程序的UI中使用的约定,所以我没有很多选择,只要使用其他方式来吸引用户注意(希望我这样做).这就是它的工作方式.

问题是,一旦用户返回并在文本字段中输入有效内容,我需要一种方法将其设置回默认边框(而不是仅仅将其设置为Color.GRAY或其他任何颜色,这与其原始颜色不同边界).我需要一种方式来说,"删除额外的装饰并恢复正常"或者只是将边框设置为默认值,换句话说.

java validation user-interface swing

1
推荐指数
2
解决办法
7199
查看次数