Java 将任何类型的对象传递给类B
我希望能够将对象从任何类传递到特定类。我该怎么做?我在接收类的构造函数中传递对象。我知道的一个解决方法是使用静态变量,但我需要整个对象,而不仅仅是变量Java 将任何类型的对象传递给类B,java,object,instance-variables,Java,Object,Instance Variables,我希望能够将对象从任何类传递到特定类。我该怎么做?我在接收类的构造函数中传递对象。我知道的一个解决方法是使用静态变量,但我需要整个对象,而不仅仅是变量 public class tryitout { public static void main(String[] args) { A a = new A(); B b = new B(a); b.print(); } } class A implements Serializable { public
public class tryitout
{
public static void main(String[] args) {
A a = new A();
B b = new B(a);
b.print();
}
}
class A implements Serializable
{
public int a;
public String b;
A()
{
this.a = 12;
this.b =" nach";
}
}
class B
{
Object obj;
B(Object o)
{
obj = o;
}
void print()
{
System.out.println(obj.a + " "+ obj.b);
}
}
可能使用静态块和匿名块之类的东西
公共类HelloWorld{
公共静态void main(字符串[]args){
B ob1=新的B();
C ob2=新的C(B.ob);
D ob3=新的D();
C ob4=新的C(ob3.ob);
}
}
甲级
{
//这是空类,只是为了创建对象
公共工作
{
系统输出打印(“测试”);
}
}
B类
{
公共静态广播;
static{ob=newa();}//加载类后调用static
}
C类
{
公共C(){}//默认构造函数
公共C(A){A.imWorking();}
}
D类
{
公共广播;
{ob=new A();}//每当创建一个新对象时,一个规则块就会调用它
}
更多信息块和匿名块][1]使用泛型:
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class tryitout {
public static void main(String[] args) {
ClassA a = new ClassA("sap",11);
ClassB<ClassA> b = new ClassB<ClassA>(a);
b.print();
}
}
public class ClassA {
private String name;
private int id;
public ClassA(String name, int id) {
super();
this.name = name;
this.id = id;
}
@Override
public String toString() {
return "ClassA [name=" + name + ", id=" + id + "]";
}
}
public class ClassB<T> {
private T genericObj;
public ClassB(T genericObj){
this.genericObj = genericObj;
}
public void print() {
Field nameField = getField("name");
Field idField = getField("id");
try {
System.out.println(nameField.get(genericObj));
System.out.println(idField.getInt(genericObj));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
private Field getField(String FieldName) {
Field fld = null;
try {
fld = genericObj.getClass().getDeclaredField(FieldName);
if(Modifier.isPrivate(fld.getModifiers())) {
fld.setAccessible(true);//To get access over private fields
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
}
return fld;
}
}
如果需要,那么use AB将从各种其他类接收多个对象。不包含在代码中。因此,创建一个带有获取变量方法的接口,让所有可以发送到B的类实现它,并声明
SomeInterface obj代码>谢谢你!我知道有些事情是可能的。
public class TypeClass {
protected String name;
protected int id;
protected void paint(){
System.out.println("name: " + name + " | id: " + id);
}
}
public class ClassC extends TypeClass{
public ClassC(String name, int id) {
super();
this.name = name;
this.id = id;
}
@Override
public String toString() {
return "ClassA [name=" + name + ", id=" + id + "]";
}
}
package javaConcept.generics;
public class ClassD {
private TypeClass typeClass;
public ClassD(TypeClass typeClass) {
this.typeClass = typeClass;
}
public void newPaint() {
typeClass.paint();
}
}
public class TempoClass {
public static void main(String[] args) {
ClassC c = new ClassC("sap",11);
ClassD b = new ClassD(c);
b.newPaint();
}
}