如果可以为应该抛出已检查异常的方法写入字节代码?
例如,除非方法声明它抛出已检查的异常,否则以下Java类不会编译:
public class CheckedExceptionJava {
public Class<?> testChecked(String s) throws ClassNotFoundException {
return Class.forName(s);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然以下Scala等价物(因为Scala没有检查异常):
class CheckedException {
def testChecked( s : String ) = Class.forName( s )
}
Run Code Online (Sandbox Code Playgroud)
即使生成的字节码几乎相同:
Compiled from "CheckedExceptionJava.java"
public class CheckedExceptionJava extends java.lang.Object{
public CheckedExceptionJava();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public java.lang.Class testChecked(java.lang.String) throws java.lang.ClassNotFoundException;
Code:
0: aload_1
1: invokestatic #2; //Method java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
4: areturn
}
Compiled from "CheckedException.scala"
public class CheckedException extends java.lang.Object implements scala.ScalaObject{
public …Run Code Online (Sandbox Code Playgroud) 是否可以确定使用了哪个提交按钮?我有一个带有2个提交按钮的确认表.第一个将确认订单,执行一些数据库任务,然后重定向.第二个是取消按钮,它将只重定向到同一页面,而不执行任何数据库任务.
是否可以在servlet中,最好是通过请求对象,来确定使用了哪个提交按钮?我宁愿不依赖于Javascript,因为这很简单,但如果唯一的可能性,它会诉诸它.
谢谢.
我最近读过一些与计算机有关的东西.
阅读与Lisp和Emacs有关,它们更像是图灵机,更符合"建筑"模型.
另一方面,它是C和"其他"建筑模型是以我不记得的名字命名的,但被命名为最成功的计算机类型,因为这是我们现在都使用的(即cpu + ram + hd) +等等).
如果它不是图灵机那种类型的计算机的名称是什么(afaik是抽象模型而不是物理模型)
字节!
我已经设法进入一台linux机器来尝试这个答案中建议的HotKey库.
我已经编译了示例代码,现在我运行该程序,我得到以下消息:
[oracle@machine jxgrabkey-0.2.1_i386]$ java -classpath lib/JXGrabKey.jar:Example JXGrabKeyTest Exception in thread "main" **java.lang.UnsatisfiedLinkError:** /home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/oracle/javasample/jxgrabkey-0.2.1_i386/lib/libJXGrabKey.so) at java.lang.Runtime._load(libgcj.so.7rh) at java.lang.Runtime.load(libgcj.so.7rh) at java.lang.System.load(libgcj.so.7rh) at JXGrabKeyTest.main(JXGrabKeyTest.java:17)
我知道如何在Windows中处理这个问题(只需将DLL添加到PATH env var),但我对linux不太确定.
我已经阅读了一些关于LD_LIBRARY_PATH和其他一些env vars的内容,但我可以使它工作.
有什么建议?
编辑
我可以说:
我的系统是:Linux 2.6.18-53.el5
我的GCC版本是(是):
GCC-C++ - 4.1.2-14.el5
GCC-gfortran-4.1.2-14.el5
libgcc中,4.1.2-14.el5
GCC-4.1.2-14.el5
问题是我需要gcc 4.2.0
Aaand显然我的系统没有gcc 4.2.0.
我想我必须等待它来或者作者在以前的版本中重新编译它.
mmyers,非常感谢你的帮助.
我将日期与这样的事情进行比较:
var dt = new Date();
dt.setDate("17");
dt.setMonth(06);
dt.setYear("2009");
var date = new Date();
console.log("dt(%s) == date(%s) == (%s)", dt, date, (dt == date) );
if( now == dt ) {
....
}
Run Code Online (Sandbox Code Playgroud)
字符串值当然是动态的.
在日志中我看到:
dt(Fri Jul 17 2009 18:36:56 GMT-0500 (CST)) == date(Fri Jul 17 2009 18:36:56 GMT-0500 (CST) == (false)
Run Code Online (Sandbox Code Playgroud)
我试过.equals()但它没有用(我正在尝试JavaScript的Java部分:P)
如何比较这些日期以便它们返回true?
我记得,不久前,有人发布了一个关于如何指定全局渲染提示以在java中使用反别名的链接.
不幸的是我找不到问题.
如何指定渲染提示在swing中使用反别名?
我整个星期都在工作,以解决生产错误.
我终于找到了能够找到导致所有混乱的罪魁祸首的记录.
我有以下错误消息:
java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-01438: value larger than specified precision allows for this column
Run Code Online (Sandbox Code Playgroud)
事件来自所有信息,我认为这可能是错误的数据,系统正试图插入:
10385274000
Run Code Online (Sandbox Code Playgroud)
进入一个数字(10)
我怎么知道这个值是否合适?
谢谢
编辑
根据Michel Todd的建议:
create table xyz( testfield number( 10 ) );
insert into xyz values( 10385274000 )
Error: ORA-01438: value larger than specified precision allowed for this column
Run Code Online (Sandbox Code Playgroud)
感谢你们!!!
谢谢stackoverflow
编辑
给自己的注意事项(不要忘记是什么问题)
我有这个Oracle产品,它在数据库表中存储事件的时间
START_TIME|END_TIME
Run Code Online (Sandbox Code Playgroud)
事实证明,每隔一夜它就会将这些信息备份到另一个表中,但会在此过程中执行转换.它存储为:
TOTALTIME
Run Code Online (Sandbox Code Playgroud)
当通过减去ENDTIME - STARTTIME计算此字段时出现问题.结果编号存储在此列中,定义为:NUMBER(10)
好吧,事实证明,如果END_TIME-START_TIME在时间上太远(大约4个月左右),那么这个值(以毫秒为单位)会很大,它将不适合目标列(我猜它有类似于endTime的东西) .getTime() - 代码中的startTime.getTime())
所有这些听起来太容易而且太傻了,但我花了4天时间才发现,因为这是一个封闭的应用程序,我不知道发生了什么,我唯一得到的就是堆栈跟踪.
我不得不对整个过程进行逆向工程(在OLD意义上,用手,显然是从源头开始)找到这个.
当我这样做时,我的"手动编码迁移器"中出现了同样的错误,并找出解决方法!
我过去使用过的大多数网站(包括此网站)都没有提供删除自己帐户的选项.
我认为主要原因是避免创建项目的孤儿院(或删除这些项目的级联).
现代网站(像这一个)有一个地方,当一个帐户被放弃时这些项目(在SO的情况下,它是用户" 社区 ").
在您看来,不提供"删除我的帐户"功能的理由是什么?
安全?懒惰?无知?错误?还是功能?
我们正在设计一个小型Web应用程序,我们正在讨论这个主题.但是,由于不允许用户删除帐户,我们找不到太多理由.
我为一些任务写了一个简单的地图实现.然后,出于好奇,我又写了两篇.我喜欢map1,但代码有点难以阅读.如果有人感兴趣,我会很感激简单的代码审查.
哪一个更好?你知道在javascript中实现这个的其他方法吗?
var map = function(arr, func) {
var newarr = [];
for (var i = 0; i < arr.length; i++) {
newarr[i] = func(arr[i]);
}
return newarr;
};
var map1 = function(arr, func) {
if (arr.length === 0) return [];
return [func(arr[0])].concat(funcmap(arr.slice(1), func));
};
var map2 = function(arr, func) {
var iter = function(result, i) {
if (i === arr.length) return result;
result.push(func(arr[i]));
return iter(result, i+1);
};
return iter([], 0);
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑
我一般都在考虑这种功能.
例如,现在我将使用它来迭代这样:
map(['class1', 'class2', 'class3'], function(cls) …Run Code Online (Sandbox Code Playgroud) java ×6
javascript ×2
antialiasing ×1
architecture ×1
bytecode ×1
forms ×1
history ×1
html ×1
http ×1
jdbc ×1
linux ×1
map ×1
maxlength ×1
native ×1
option-type ×1
oracle ×1
scala ×1
sdk ×1
servlets ×1
spring-boot ×1
swing ×1
theory ×1
types ×1
von-neumann ×1