我被要求在类声明之前添加日志和sysout。我应该使用什么日志,如何添加Sysout??在这个项目中加入这些有什么意义?此外,我被要求为员工Id和名字创建常量字段。这是否意味着我应该创建将存储员工id和名字的常量变量??
public class Read {
public static void main(String argv[]) {
try {
File fXmlFile = new File("/Users/mkyong/staff.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Staff id : " + eElement.getAttribute("id"));
System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我认为Sysout是指System.out.println
,正如我所看到的,您已经添加了这些。
我认为logs
意味着使用日志记录实现。使用java.utils.logging.Logger
的一个例子是:
import java.util.logging.Logger;
public class Main {
private static Logger LOGGER = Logger.getLogger(Main.class.getSimpleName());
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
可以看到,Logger
的一些目的是输出用于诊断(调试、监视)的文本。它可以输出文本到控制台,文件,数据库,并以任何你想要的方式格式化它。
与普通的System.out.println
相比,使用记录器提供了更多的功能和控制。
还要求我为员工Id和名字创建常量字段
你明白了。这意味着为"firstname"
, "staff"
, "lastname"
和任何其他字符串创建常量。然后,在需要使用该字符串的地方使用常量:
,
private static final String STAFF = "staff";
private static final String FIRST_NAME = "firstname";
这样做的好处是,您可以在一个地方看到所有常量,并在需要时轻松修改它们。想象一下在5个地方使用"firstname"
。然后你意识到你想用"first_name"代替。如果你不使用常量,你将不得不改变5个位置,否则,只需改变1个位置。
"you have been asked",当你的作业不清楚时,你应该先问你的助教。
此外,"/Users/mkyong/staff.xml"在我看来非常非常可疑。因为mkyong是一个非常有名的开发者。你不应该在不了解它们的情况下从网上拿例子复制/粘贴它们。
也就是说,你应该将静态final字段声明为常量,比如private static final String STAFF_ID = "Staff id"
private static final String FIRST_NAME = "First Name"
,然后在代码中替换这些值。
对于日志和sysout, sysout只是意味着添加
System.out.println("something you would like to print")
Logging做同样的事情,但是使用一个框架并自动提供更多信息,例如打印行时间和触发打印的类。它还在何时打印消息方面提供了灵活性。先看这个http://en.wikipedia.org/wiki/Java_logging_framework