java源文件解析

java源文件解析,第1张

建一个Student实体类封装数据

public static List<Student>readXml() {

List<Student>list = new ArrayList<Student>()

//定义一个<a href="https://www.baidu.com/s?wd=dom%E8%A7%A3%E6%9E%90&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf" target="_blank" class="baidu-highlight">dom解析</a>器工厂实例

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance()

try {

//由工厂实例得到一个<a href="https://www.baidu.com/s?wd=dom%E8%A7%A3%E6%9E%90&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf" target="_blank" class="baidu-highlight">dom解析</a>器

DocumentBuilder dom = factory.newDocumentBuilder()

//找到<a href="https://www.baidu.com/s?wd=xml%E6%96%87%E6%A1%A3&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf" target="_blank" class="baidu-highlight">xml文档</a>

File file=new File("src/com/jereh/ch05/Students.xml")

Document doc=dom.parse(file)

//

Element root = doc.getDocumentElement()

NodeList stuNodeList = root.getChildNodes()

for (int i = 0i <stuNodeList.getLength()i++) {

Node stu = stuNodeList.item(i)

Student student = new Student()

if (stu != null &&stu.getNodeType() == Node.ELEMENT_NODE) {

// System.out.println(stu)

Element stuElement = (Element) stu

student.setNo(stuElement.getAttribute("id"))

// stu.getAttributes().getNamedItem(null)

// Element stu=(Element)stuNodeList

NodeList info = stuElement.getChildNodes()

for (int j = 0j <info.getLength()j++) {

info.item(j).getNodeName()

Node n = info.item(j)

if ("name".equals(n.getNodeName())) {

// n.getFirstChild().getNodeValue()

student.setName(n.getLastChild().getNodeValue())

} else if ("age".equals(n.getNodeName())) {

student.setAge(Integer.parseInt(n.getFirstChild()

.getNodeValue()))

}

list.add(student)

}

}

}

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

// System.out.println(root.getNodeValue())

return list

}

查看类的方法 结构 用反射啦

我以前也写过一个这样的程序 模仿一下反编译

主要用的方法是

Class c=Class.forName(str)

int m=c.getModifiers()

//类标题

boolean class_=false

if(Modifier.isInterface(m))

{

if(Modifier.isPublic(m))

cla.append("public ")

cla.append("interface ")

}

else

{

class_=true

if(Modifier.isPublic(m))

cla.append("public ")

if(Modifier.isFinal(m))

cla.append("final ")

if(Modifier.isAbstract(m))

cla.append("abstract ")

cla.append("class ")

}

有一些工具可以帮助您详解 Java 代码,包括以下几种类型:

集成开发环境(IDE):如 Eclipse、IntelliJ IDEA 和 NetBeans 等。IDE 可以对 Java 代码进行分析,提供代码提示、自动补全、重构等功能,帮助开发者快速编写、修改和理解 Java 代码。

静态分析工具:如 Checkstyle、PMD 和 FindBugs 等。这些工具可以对 Java 代码进行静态分析,检测潜在的代码问题,例如代码风格不符合规范、空指针异常等。

反编译工具:如 JD-GUI、FernFlower 和 Procyon 等。这些工具可以将 Java 字节码反编译为 Java 源代码,帮助开发者理解和分析 Java 代码。

UML 工具:如 Visual Paradigm、StarUML 和 PlantUML 等。这些工具可以通过 UML 图形化表示 Java 代码,帮助开发者更好地理解 Java 代码的结构和关系。

代码注释工具:如 Javadoc、Doxygen 和 NaturalDocs 等。这些工具可以自动生成 Java 代码的文档注释,帮助开发者更好地理解和使用 Java 代码。

以上是一些常见的 Java 代码详解工具,您可以根据自己的需求选择合适的工具使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7976375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存