我被要求在类声明之前添加日志和sysout。我应该使用什么日志以及如何添加Sysout?在这个程序中添加这些是什么意思?还要求我为Staff创建常量字段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();
}
}
}
答案 0 :(得分:0)
“你被问到”,当你的作业不明确时,你应该先问你的TA。
此外,“/ Users / mkyong / staff.xml”对我来说非常可疑。因为mkyong是一位非常着名的开发者。你不应该从互联网上取样并复制/粘贴它们而不理解它们。
那就是说,是的,您应该将静态最终字段声明为常量,例如
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")
记录执行相同的操作,但使用框架并自动提供更多信息,例如打印行的时间以及触发打印的类。它还提供了何时打印消息的灵活性。 先看看这个 http://en.wikipedia.org/wiki/Java_logging_framework
答案 1 :(得分:0)
我认为 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个地方。