「java取对象」java中获取对象的方式有哪几种

博主:adminadmin 2022-11-21 21:38:10 210

本篇文章给大家谈谈java取对象,以及java中获取对象的方式有哪几种对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 获取对象的数据类型的方法

使用getClass方法可以获取一个对象的类型类,然后在调用该类的方法可以获取该类的相关信息,比如父类的名字,该类的名字等等:

package test;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

public class Demo2 {

String username = "sss";

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException, NoSuchMethodException {

Demo2 t = new Demo2();

if (Demo2.class == t.getClass()) {

System.out.println("equal");

}

// 获取类名

System.out.println(t.getClass().getName());

// 获取父类名

System.out.println(t.getClass().getSuperclass());

//获取类中某个属性

Field f = t.getClass().getField("username");

//获取类中某个方法

Method m = t.getClass().getDeclaredMethod("main", String[].class);

}

java 怎样获得一个类的当前对象

.class获得的是类的class对象,可不是这个类的对象,用class

变量名接收,用这个class对象通过反射机制可以通过newinstence创建出这个类的对象而且只能调用无参数构造器

java怎样获得一个对象的类型

java中获取一个对象可以使用单例模式,实例如下:

Class A:

public class A {

 

 public void SayHello() {

  System.out.println("Say Hello From Class A");

 }

 public static A getInstanceOfA() {

  return new A();//A类中A的实例变量

 }

 private A(){}

}

Class B:

public class B {

 public static void main(String[] args) {

 A a = A.getInstanceOfA();//返回的是A类中的A的实例变量

  a.SayHello();//调用A中的SayHello方法

 }

}

「java取对象」java中获取对象的方式有哪几种

java 获得对象几种方法

java获得对象的方法

通过new关键字来进行获取对象。

如:Test  test=new  Test();

通过反射手段,调用java.lang.class或者java.lang.reflect.Constructor中的newInstance()进行获取对象。

如:Test  test=(Test)Class.forname("com.test.Test").newInstance();

Test test=Test.class.newInstance();

通过反序列化获取对象

如:testInputStream textin = new ObjectInputStream(new FileInputStream     ("test.obj"));

Test test= (Test) in.readObject();

clone()克隆方法

Test test2=(Test)test1.clone();

java根据对象属性从对象列表中取出对象

package test;

import java.beans.IntrospectionException;

import java.beans.PropertyDescriptor;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

public class AList extends ArrayListA {

/**

 * 

 */

private static final long serialVersionUID = -5626405721508120479L;

public A getSubject(String name, Object value)

throws IllegalAccessException, IllegalArgumentException,

InvocationTargetException, IntrospectionException {

A[] result = getSubjects(name, value);

if (result.length = 0)

return null;

else

return result[0];

}

public A[] getSubjects(String name, Object value)

throws IntrospectionException, IllegalAccessException,

IllegalArgumentException, InvocationTargetException {

PropertyDescriptor pd = new PropertyDescriptor(name, A.class);

Method getter = pd.getReadMethod();

IteratorA it = this.iterator();

A[] result = new A[0];

while (it.hasNext()) {

A obj = it.next();

Object theValue = getter.invoke(obj);

if (theValue != null  theValue.equals(value)) {

result = Arrays.copyOf(result, result.length + 1);

result[result.length - 1] = obj;

}

}

return result;

}

public static void main(String[] args) throws IllegalAccessException,

IllegalArgumentException, InvocationTargetException,

IntrospectionException {

AList al = new AList();

A a = new A("张三");

a.setAge(18);

a.setGender("男");

a.setSchool("XX大学");

A b = new A("李四");

b.setAge(20);

b.setGender("男");

b.setSchool("XX大学");

A c = new A("王五");

c.setAge(18);

c.setGender("女");

c.setSchool("XX大学");

al.add(a);

al.add(b);

al.add(c);

System.out.println(Arrays.toString(al.getSubjects("name", "张三")));

System.out.println(Arrays.toString(al.getSubjects("age", 18)));

System.out.println(Arrays.toString(al.getSubjects("gender", "男")));

System.out.println(Arrays.toString(al.getSubjects("school", "XX大学")));

// [A [name=张三, age=18, gender=男]]

// [A [name=张三, age=18, gender=男], A [name=王五, age=18, gender=女]]

// [A [name=张三, age=18, gender=男], A [name=李四, age=20, gender=男]]

// [A [name=张三, age=18, gender=男], A [name=李四, age=20, gender=男], A [name=王五, age=18, gender=女]]

}

}

class A {

private String name;

private int age;

private String gender;

private String school;

public String getSchool() {

return school;

}

public void setSchool(String school) {

this.school = school;

}

public A(String name) {

super();

this.name = name;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public String toString() {

return "A [name=" + name + ", age=" + age + ", gender=" + gender + "]";

}

}

java从文件读取对象

可以使用 ObjectOutputStream 将对象写入文件中,使用 ObjectInputStream 类从文件中读取出对象。

代码如下:

import java.io.EOFException;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import java.util.ArrayList;

import java.util.List;

class Person implements Serializable {

private static final long serialVersionUID = -3527230407404080537L;

private String name;

private int age;

public Person(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + "]";

}

}

public class App34 {

public static void main(String[] args) throws IOException, ClassNotFoundException {

ListPerson persons = new ArrayList();

persons.add(new Person("张三", 20));

persons.add(new Person("李四", 25));

File file = new File("persons.data");

// 创建文件输出流

FileOutputStream output = new FileOutputStream(file);

// 创建对象输出流

ObjectOutputStream oOutput = new ObjectOutputStream(output);

// 将整个数组列表输出至文件

oOutput.writeObject(persons);

// 或者逐个将对象输出至文件,读取时需要逐个读取

/*for (Person p : persons) {

oOutput.writeObject(p);

}*/

oOutput.close();

output.close();

// 创建文件输入流

FileInputStream input = new FileInputStream(file);

// 创建对象输入流

ObjectInputStream oInput = new ObjectInputStream(input);

// 读出整个对象列表

ListPerson persons2 = (ListPerson) oInput.readObject();

for (Person p : persons2) {

System.out.println(p);

}

// 或者逐个读取对象

/*Person p1 = null;

try {

while((p1 = (Person) oInput.readObject()) != null) {

System.out.println(p1);

}

} catch (EOFException e) {

System.out.println("读取对象结束");

}*/

oInput.close();

input.close();

}

}

关于java取对象和java中获取对象的方式有哪几种的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。