我喜欢用getter方法'猜测'属性名称.因此'getSomeAttribute'将转换为'someAttribute'.
通常我会这样做
String attributeName = Character.toLowerCase(methodName.indexOf(3))
+ methodName.substring(4);
Run Code Online (Sandbox Code Playgroud)
很难看,对吧?我通常把它隐藏在一个方法中,但有人知道更好的解决方案吗?
我用StAx编写了一个xml解析器,用于解析从服务器接收的XML流.这是我的代码:
private Map<String, IUnitaryAction> parse(InputStream is) throws XMLStreamException {
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader reader = factory.createXMLStreamReader(is);
boolean action = false;
Map<String, IUnitaryAction> actionsMap = new HashMap<String, IUnitaryAction>();
while(reader.hasNext()){
int type = reader.next();
switch(type){
case XMLStreamReader.START_ELEMENT :
action = reader.getLocalName().equals("action-description");
break;
case XMLStreamReader.CHARACTERS :
if( action ){
String act = reader.getText();
System.out.println("Action trouvées " + act);
String[] praxiscmd = act.split("_");
if("CREATE".equals(praxiscmd[0])){
Create c = new Create(praxiscmd[1], praxiscmd[2], null);
actionsMap.put(praxiscmd[1], c);
} else if("DELETE".equals(praxiscmd[0])){
Delete d = new Delete(praxiscmd[1],praxiscmd[2], null);
actionsMap.put(praxiscmd[1], …Run Code Online (Sandbox Code Playgroud) 我使用log4j进行日志记录.我想修改方法:warn(..),error(..).我想在这个方法中修改消息.那么,有什么办法,如何创建自己的记录器?
public class MyLogger extends Logger {
protected MyLogger(String name) {
super(name);
}
@Override
public void error(Object message) {
message = "test - " + message;
super.error(message);
}
}
Run Code Online (Sandbox Code Playgroud)
在课堂电话中:
private static final Logger logger = MyLogger.getLogger(TestClass.class);
logger.error("error message");
Run Code Online (Sandbox Code Playgroud)
但它,不起作用.你可以帮帮我吗?谢谢.
我需要像long getMillis(Date aDate)这样的函数;
返回Date秒的毫秒数.我不能使用Yoda,SimpleDateFormat或其他库,因为它是gwt代码.
我目前的解决方案正在做 date.getTime() % 1000
有没有更好的办法?
在Solaris计算机上运行我的应用程序时,我收到此错误指向某个.so文件.但是,应用程序在我的Windows机器上运行得很好.如果我没有弄错,我的应用程序期望64位版本,但我在Solaris机器上只有32位版本的.so文件.有没有办法解决这个问题,所以它会使用32位版本?我知道它与字节码无关,但可能与JVM无关.我尝试使用-d32或-d64运行,但它没有任何效果.
更新:
这是确切的错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: librvjs11.so: ld.so.1: java: fatal: librvjs11.so: wrong ELF class: ELFCLASS32<br>
at java.lang.ClassLoader$NativeLibrary.load(Native Method)<br>
at java.lang.ClassLoader.loadLibrary0(Unknown Source)<br>
at java.lang.ClassLoader.loadLibrary(Unknown Source)<br>
at java.lang.Runtime.loadLibrary0(Unknown Source)<br>
at java.lang.System.loadLibrary(Unknown Source)<br>
Run Code Online (Sandbox Code Playgroud)
我已经更新了LD_LIBRARY_PATH,因此它包含了包含上述文件的目录.
这个问题可能很愚蠢,但我不小心检查了java源代码,runnable接口中的run方法是用abstract关键字定义的.但是根据接口定义,接口中的所有方法都是默认的抽象.然后我很困惑为什么特殊的Runnable接口有run方法的抽象关键字.我检查其他界面,如地图,列表等,但没有人有抽象的关键字.
请给我一个想法,为什么在java源代码中这样写.
public abstract void run();
Run Code Online (Sandbox Code Playgroud)
谢谢
我想在Apache Derby 10.7中使用SEQUENCE支持.我用以下语句创建了序列:
CREATE SEQUENCE SAMPLE_SEQ AS INT MAXVALUE 999999 CYCLE;
Run Code Online (Sandbox Code Playgroud)
如何从SAMPLE_SEQ?中选择下一个/当前值?你能帮我解决一下这个问题吗?
我正在尝试制作网络服务,但我收到此错误
IWAB0506E Error when copying Axis jar files to web project
java.io.FileNotFoundException: /lib/saaj.jar
at
Run Code Online (Sandbox Code Playgroud) 在伪分布式操作中处理Hadoop实现时,我发现以下JAVA_HOME变量没有设置,但是当我试图回应它时,它被设置了.
变量在conf/hadoop-env.sh(编辑export JAVA_HOME=/usr/lib/jvm/java-6-sun)中预设bash.bashrc.
vardan@vardan-HP-G62-Notebook-PC:~/hadoop-0.20.203.0$ echo $JAVA_HOME
/usr/lib/jvm/java-6-sun
vardan@vardan-HP-G62-Notebook-PC:~/hadoop-0.20.203.0$ bin/start-all.sh
starting namenode, logging to /home/vardan/hadoop-0.20.203.0/bin/../logs/hadoop-vardan-namenode-vardan-HP-G62-Notebook-PC.out
localhost: starting datanode, logging to /home/vardan/hadoop-0.20.203.0/bin/../logs/hadoop-vardan-datanode-vardan-HP-G62-Notebook-PC.out
localhost: Error: JAVA_HOME is not set.
localhost: starting secondarynamenode, logging to /home/vardan/hadoop-0.20.203.0/bin/../logs/hadoop-vardan-secondarynamenode-vardan-HP-G62-Notebook-PC.out
localhost: Error: JAVA_HOME is not set.
starting jobtracker, logging to /home/vardan/hadoop-0.20.203.0/bin/../logs/hadoop-vardan-jobtracker-vardan-HP-G62-Notebook-PC.out
localhost: starting tasktracker, logging to /home/vardan/hadoop-0.20.203.0/bin/../logs/hadoop-vardan-tasktracker-vardan-HP-G62-Notebook-PC.out
localhost: Error: JAVA_HOME is not set.
Run Code Online (Sandbox Code Playgroud) 我很困惑为什么这是允许的
public class Foo {
class Bar extends Foo {
}
}
Run Code Online (Sandbox Code Playgroud)
但这是不允许的
public class Foo {
class Bar extends Foo {
}
class Fooey extends Bar {
}
}
Run Code Online (Sandbox Code Playgroud)
编译器通知它在调用超类型构造函数之前无法引用Fooey.this.
这是允许的
public class Foo {
static class Bar extends Foo {
}
class Fooey extends Bar {
}
}
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?我在哪里可以找到有关内部类继承如何工作的更多信息?
编辑我遇到了两个相当糟糕的想法; 内部类扩展外部类,内部类扩展其他静态内部类.我不确定到底发生了什么以及我应该如何重构这一点.我最终只是将内部类拉出来并将它们封装在外部类中.
java ×10
32bit-64bit ×1
date ×1
derby ×1
eclipse ×1
hadoop ×1
inheritance ×1
java-home ×1
jvm ×1
log4j ×1
logging ×1
milliseconds ×1
sequence ×1
sql ×1
stax ×1
web-services ×1
xml ×1