首先做一个接口,接口中声明需要的取值方法
然后做你要的实际的类,每个类实现不同的取值方法
然后list通过接口进行定义,将每个实际类的对象insert到list中间
然后利用多态实现动态的方法绑定,实现你的需求
import javaio;
import javautil;
import orgjdom;
import orgjdominput;public class MyXMLReader2JDOM {
public static void main(String arge[]) {
long lasting = SystemcurrentTimeMillis();
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builderbuild(new File("xmlcountxml"));
Element foo = docgetRootElement();
// List allChildren = foogetChildren();
Systemoutprint( foogetAttributeValue("month-count"));
Systemoutprintln(foogetAttributeValue("total-count"));
} catch (Exception e) {
eprintStackTrace();
}
}
}
定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK15及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
public javautilList selectxml(String filename)
{
orgw3cdomDocument dt = null;
javaxxmlparsersDocumentBuilderFactory dbf = javaxxmlparsersDocumentBuilderFactory
newInstance();
try
{
javaxxmlparsersDocumentBuilder db = dbfnewDocumentBuilder();
javaioFile file = new javaioFile(filename);
dt = dbparse(file);
} catch (ParserConfigurationException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
} catch (SAXException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
}
orgw3cdomNodeList nl = dtgetDocumentElement()getElementsByTagName(
"student");
javautilArrayList al = new javautilArrayList();
Systemoutprint(nlgetLength());
for (int i = 0; i < nlgetLength(); i++)
{
orgw3cdomElement student = (orgw3cdomElement) nlitem(i);
Person person = new Person();
personsetName(studentgetElementsByTagName("name")item(0)
getFirstChild()getNodeValue()toLowerCase());
personsetAge(studentgetElementsByTagName("age")item(0)
getFirstChild()getNodeValue()toString());
personsetAddress(studentgetElementsByTagName("address")item(0)
getFirstChild()getNodeValue()toString());
personsetTelephone(studentgetElementsByTagName("telephone")item(
0)getFirstChild()getNodeValue()toString());
aladd(person);
}
return al;
}
看你这个txt文件内容详实xml,其实你可以吧txt改成xml文件,这样就能调用java的xml读取方法获得了,如果不能改文件类型,可以用java io读取每一行,然后定位height 和width的位置,位置加2(也就是=“的位置)这样就能获得下一位,即height和width里面的值了
思路如下:
xml文件未知不明白什么意思?我索性就理解为一个目录下有很多xml文件,每个xml文件获取其中的bean节点属性。
1> 有xml文件路径,获取该路径下的所有文件,用后缀“xml”或“XML”过滤得到xml文件。
2> javaxxmlparsersDocumentBuilder builder = factorynewDocumentBuilder();
orgw3cdomDocument doc = builderparse(is); 创建文档对象。
3>docgetChildNodes()获取文档中所有的节点,循环遍历所得节点node,
通过nodegetAttributes()获取节点所有属性,获取各个属性name和值即可,输出想要得到的数据。
或者通过docgetElementsByTagName("bean");直接指定bean节点。然后用同样的方法获取属性名和值,输出。
以上是根据jdk的W3C库解析的。想方便可以通过dom4j、jdom进行文件 *** 作。思路变化不大。
反射不是通过get取值的,是通过该对象的信息,比如说名称、内存地址等来访问类,方法,属性等,可以获取任意对象的信息,但不能获得私有属性(private String s=“sd”;)的值,切记
推荐《JAVA核心技术》这本书会对你有帮助的
以上就是关于Java获取泛型对象中的某个属性值全部的内容,包括:Java获取泛型对象中的某个属性值、如何用java获得xml文件中标签的属性列表值、java 注解处理器(AbstractProcessor) 获取到 指定注解的属性值 javapoet 如何使用这个值生成类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)