Java获取泛型对象中的某个属性值

Java获取泛型对象中的某个属性值,第1张

首先做一个接口,接口中声明需要的取值方法

然后做你要的实际的类,每个类实现不同的取值方法

然后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 如何使用这个值生成类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9317531.html

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

发表评论

登录后才能评论

评论列表(0条)

保存